django应用程序,带有一些关于postgresql trigram文本比较的插件

djorm-ext-pgtrgm的Python项目详细描述


django pgtrgm是一个django应用程序,带有一些关于postgresql trigram(或trigraph)文本比较的插件。我们可以通过计算两个字符串共享的三元组的数目来衡量它们之间的相似性。
这个简单的想法对于衡量许多自然语言中单词的相似性是非常有效的。

例如,字符串“c at”中的三元组是“c”、“ca”、“cat”和“at”“

有了这个扩展,我们可以在django orm中使用这个特性,使用一个简单的
queryset filter关键字

它是根据[gnu lesser general public
许可证](http://www.gnu.org/licenses/lgpl.html)的条款发布的

postgresql语法
————

`text%text`->;如果boolean参数的相似度大于set_limit设置的当前相似度阈值,则返回true。

[如何在PostgreSQL 9.2(http://www.postgresql.org/docs/9.2/static/pg trgm.html)中安装和使用pg_trgm扩展名


—————————————————————————————————————————————————————————————————————————这可能适用于1.5以下的其他版本。在debian/ubuntu中:`sudo apt get install postgres contrib`



installation
----

-in your`settings.py`

``python


installed嫒apps=(

'djorm嫒pgtrgm',

````

-您需要*在数据库中注册*扩展名。运行`./manage.py dbshell',然后执行:

``sql
create extension pg懔trgm;
`````

-或者,可以在文本列上创建索引,以便快速搜索相似性。例如,supose将在模型“myapp.product”的
“description”字段上过滤大量内容:

``sql



```

usage
----


可以这样做:

``python
mymodel.objects.filter(field戋name戋u similar='whatever')。
extra(select={distance':“similarity(name,'whatever')”})。
order戋by('-distance')
````

为了简洁起见,您可以使用提供的“similarmanager”,它有一个“filter o”方法。


``python



```



`filter\u o`是上面代码片段中“filter+extra+order”的快捷方式。

``python
``mymodel.objects.filter\u o(field\u name\u similar='whatever')
```

这会将每个类似的“mymodel”实例返回一个“field\u name”*类似的*
到“whatever”,并进行排序根据每个Intance的“field_name”值到目标“whatever”的距离。此外,在QuerySet中的每个项中添加一个额外的字段“field\u name\u distance”。





git://github.com/jleivaizq/djorm ext pgtrgm.git



>0.0.1(2013-10-23)
======


*djorm ext pgtrgm的第一个版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ListSelectionListener在调用setSelected方法时不触发事件   使用Java的常见jdbc更新查询   java如何使用应用程序引擎后端构建移动应用程序教程:不是应用程序引擎项目   Java compareTo和运算符   java错误膨胀类com。谷歌。A.场景形式。ArSceneView   在java类中包含自动生成的方法   springbootstarterwebflux和springbootstarterjetty之间的java冲突   JavaGSON解析json,其中每个字段都是一个对象   java Android API 16级如何安全地存储首选项?   java Gson fromJson(),来自OkHttp3的有效Json响应无效(已关闭)   java如何在使用spring maven插件构建时包含空目录?   java IF NOT语句   javamaven:packageorg。junit不存在,即使它在pom的依赖项列表中声明。xml   java如何将JDK代理的代理实例传递到调用处理程序?   java Firebase无默认构造函数反序列化   servlets Java web应用程序对象调度   swing在Java小程序中无法将标签显示在饼图图例旁边   java Makefile:“多个目标模式。停止。”   java用逗号分隔数据