狮身人面像搜索
django-sphinxql的Python项目详细描述
[![构建状态](https://travis-ci.org/jorgecarleitao/django-sphinxql.svg?branch=master)(https://travis ci.org/jorgecarleitao/django sphinxql)
[![覆盖状态](https://coveralls.io/repos/jorgecarleitao/django-sphinxql/badge.svg?branch=master&service=github)(https://coveralls.io/github/jorgecarleitao/django-sphinxql?branch=master)
[django](https://www.djangoproject.com)实现了[sphinx搜索](http://sphinx search.com),感谢您的检查。
sphinx是一个为rel设计的搜索引擎。国家数据库。
django sphinxql定义了一个orm,用于在django中使用**sphinx**。
作为推论,它允许您在
django网站中使用sphinx实现全文搜索。
用python配置sphinx。
2.斯芬克斯索引django模型。
3.使用类似django的表达式执行sphinx查询(sphinxql),并将
结果作为django模型。
-python 3
-pymysql
-django(>;=1.8)
-sphinx
-a backend(pymysql或psycopg2)
travis中的构建矩阵有8个构建s:
-python 3.4
-django 1.8和1.10
-sphinx 2.2.10和2.2.11
-mysql和postgres后端
--settings=tests.settings\u test tests
下一节介绍使用此软件包的最小设置。完整的文档
在[此处](http://django sphinxql.readthedocs.org/en/latest/)。
installation
----
django sphinxql除了django和sphinx没有其他要求。要安装sphinx,请使用:
export version=2.2.10
wget http://sphinxsearch.com/files/sphinx-$version release.tar.gz
tar-xf sphinx-$version release.tar.gz
cd sphinx-$version release
./configure--prefix=$home--with pgsql
make
make install
要安装django sphinxql,请使用:
minimal configuration
----
django sphinxql需要一个目录来存储其数据库并注册为
已安装的应用程序(它确实需要不包含django模型):
1。将"sphinxql"添加到"已安装的应用程序"中;
2。将"indexes"添加到设置:
indexes={
"path":os.path.join(base_dir,"_index"),也执行"mkdir _index"。
"sphinx_path":base_dir
}
-``path``是创建sphinx数据库的位置
-`sphinx_path``是direc将包含特定于sphinx的文件的tory。
index您的模型
----
要对其进行索引,请在
应用程序中创建一个文件"index.py",其中:
from sphinxql import index,fields
from my app import models
class documentindex(index.index):
my_summary=fields.text(model_attr='summary')
my_text=fields.text(model_attr='text')
my_number=fields.integer(model_attr='number')
class meta:
model=models.document
`model_attr`可以是带查找的字符串,也可以是[f表达式](https://docs.djangoproject.com/en/1.8/topics/db/querys/using-f-expressions-in-f筛选器)。
例如,`type戋name=fields.text(model戋attr='type戋name')`将索引模型的外键'type'的名称,而
'my戋text',
output_field=charfield())
索引两个字段的连接(另请参阅[django文档](https://docs.djangoproject.com/en/dev/ref/models/database functions/concat))。
原则上,索引字段接受django annotate接受的任何django表达式。
为索引,运行:
python manage.py index_sphinx
hinx
(为了可逆性,要停止sphinx,请使用"python manage.py stop_sphinx``)"
`` searchQuerySet`*仅添加功能*:如果您
不使用Sphinx相关,则它是一个"querySet`"。
Sphinx有一个Django Sphinxql也接受的文本搜索专用语法:
>;>;q=searchQuerySet(文档索引)。search('@my_text toys for babies')
此特定查询返回"文档",仅限于字段"My_Text"中
"Toys for Babyes"匹配的文档,按最相关的匹配顺序排序。
执行此查询后,将执行以下操作:
1。点击sphinx数据库并将结果转换为"documentindex"实例;
2。点击django数据库检索相应的"document"实例;
3。用相应的"documentindex"实例(在"search\u result"属性中)注释"document"实例
4。返回"document"实例。
步骤2。使用`.filter(pk_u in=[…])``完成。结果是按相关性排序的,因为没有对"order by"的特定调用:如果在django查询中设置了任何排序,则它使用django排序(即,它重写默认的排序,而不是显式排序)。有关详细信息,请参阅文档。
d,特别是实时索引。
final note
----
您应该检查[django haystack](http://haystacksearch.org/)是否适合您的需要。
django text 文档 https index model my sphinx 狮身人面像 sphinxql
[![覆盖状态](https://coveralls.io/repos/jorgecarleitao/django-sphinxql/badge.svg?branch=master&service=github)(https://coveralls.io/github/jorgecarleitao/django-sphinxql?branch=master)
django sphinxql定义了一个orm,用于在django中使用**sphinx**。
作为推论,它允许您在
django网站中使用sphinx实现全文搜索。
用python配置sphinx。
2.斯芬克斯索引django模型。
3.使用类似django的表达式执行sphinx查询(sphinxql),并将
结果作为django模型。
-python 3
-pymysql
-django(>;=1.8)
-sphinx
-a backend(pymysql或psycopg2)
travis中的构建矩阵有8个构建s:
-python 3.4
-django 1.8和1.10
-sphinx 2.2.10和2.2.11
-mysql和postgres后端
--settings=tests.settings\u test tests
下一节介绍使用此软件包的最小设置。完整的文档
在[此处](http://django sphinxql.readthedocs.org/en/latest/)。
installation
----
django sphinxql除了django和sphinx没有其他要求。要安装sphinx,请使用:
export version=2.2.10
wget http://sphinxsearch.com/files/sphinx-$version release.tar.gz
tar-xf sphinx-$version release.tar.gz
cd sphinx-$version release
./configure--prefix=$home--with pgsql
make
make install
要安装django sphinxql,请使用:
minimal configuration
----
django sphinxql需要一个目录来存储其数据库并注册为
已安装的应用程序(它确实需要不包含django模型):
1。将"sphinxql"添加到"已安装的应用程序"中;
2。将"indexes"添加到设置:
indexes={
"path":os.path.join(base_dir,"_index"),也执行"mkdir _index"。
"sphinx_path":base_dir
}
-``path``是创建sphinx数据库的位置
-`sphinx_path``是direc将包含特定于sphinx的文件的tory。
index您的模型
----
要对其进行索引,请在
应用程序中创建一个文件"index.py",其中:
from sphinxql import index,fields
from my app import models
class documentindex(index.index):
my_summary=fields.text(model_attr='summary')
my_text=fields.text(model_attr='text')
my_number=fields.integer(model_attr='number')
class meta:
model=models.document
`model_attr`可以是带查找的字符串,也可以是[f表达式](https://docs.djangoproject.com/en/1.8/topics/db/querys/using-f-expressions-in-f筛选器)。
例如,`type戋name=fields.text(model戋attr='type戋name')`将索引模型的外键'type'的名称,而
output_field=charfield())
索引两个字段的连接(另请参阅[django文档](https://docs.djangoproject.com/en/dev/ref/models/database functions/concat))。
原则上,索引字段接受django annotate接受的任何django表达式。
为索引,运行:
python manage.py index_sphinx
hinx
(为了可逆性,要停止sphinx,请使用"python manage.py stop_sphinx``)"
`` searchQuerySet`*仅添加功能*:如果您
不使用Sphinx相关,则它是一个"querySet`"。
Sphinx有一个Django Sphinxql也接受的文本搜索专用语法:
>;>;q=searchQuerySet(文档索引)。search('@my_text toys for babies')
此特定查询返回"文档",仅限于字段"My_Text"中
"Toys for Babyes"匹配的文档,按最相关的匹配顺序排序。
执行此查询后,将执行以下操作:
1。点击sphinx数据库并将结果转换为"documentindex"实例;
2。点击django数据库检索相应的"document"实例;
3。用相应的"documentindex"实例(在"search\u result"属性中)注释"document"实例
4。返回"document"实例。
步骤2。使用`.filter(pk_u in=[…])``完成。结果是按相关性排序的,因为没有对"order by"的特定调用:如果在django查询中设置了任何排序,则它使用django排序(即,它重写默认的排序,而不是显式排序)。有关详细信息,请参阅文档。
d,特别是实时索引。
final note
----
您应该检查[django haystack](http://haystacksearch.org/)是否适合您的需要。
标签: