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的第一个版本
这个简单的想法对于衡量许多自然语言中单词的相似性是非常有效的。
例如,字符串“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的第一个版本