django_sphinx_db

软件截图:
django_sphinx_db
软件详细信息:
版本: 0.1-3
上传日期: 20 Feb 15
开发: Ben Timby
许可: 免费
人气: 0

Rating: 3.0/5 (Total Votes: 2)

django_sphinx_db是一个简单的Django的数据库后端,允许与狮身人面像的互动,通过SphinxQL。它基本上是默认的Django MySQL后台有一些变化的狮身人面像。
SphinxQL是狮身人面像的searchd支持MySQL的复制模式。它可以让你通过普通的旧SQL语法查询索引。如果您正在使用RT(实时)索引,你还可以添加和索引的更新文件。
这个后端,就是要configued作为Django的settings.py的数据库。
该软件包提供了一个Manager类,SQLCompiler套件和支持代码,以使这一切成为可能。
用法
首先,你必须定义在Django的配置数据库连接。你还必须安装狮身人面像数据库路由器,并添加django_sphinx_db您INSTALLED_APPS列表。
#安装django_sphinx_db:
INSTALLED_APPS + =('django_sphinx_db',)
#这是在数据库中的狮身人面像服务器的名称:
SPHINX_DATABASE_NAME ='斯芬克斯'
#定义连接到狮身人面像
数据库= {
 “默认”:{
 #你默认的数据库连接放在这里...
 },
  SPHINX_DATABASE_NAME:{
 '发动机':'django_sphinx_db.backend.sphinx',
 #数据库名称并不重要。
 'NAME':'',
 #没有用户名或密码。
 'USER':'',
 '密码':'',
 #不要使用本地主机,这将导致使用UDS而不是TCP ...
 “HOST”:“127.0.0.1”,
 '端口':'9306',
 },
}
#...和路线相应...
DATABASE_ROUTERS =(
 “dj​​ango_sphinx_db.routers.SphinxRouter',
)```
然后定义了一个模型,源于SphinxModel。像往常一样,该模型将被放置在models.py。
从django_sphinx_db.backend.models进口SphinxModel,SphinxField
类MyIndex(SphinxModel):
 类元:
 #这下位是很重要的,你不想Django的管理
 #表这个模型。
 管理=假
 名称= SphinxField()
 内容= SphinxField()
 日期= models.DateTimeField()
 大小= models.IntegerField()
配置狮身人面像
现在,你需要生成索引的配置文件。一个管理命令提供给模型定义转换成一合适的构造。
 蟒蛇manage.py syncsphinx >> /etc/sphinx.conf
 六/etc/sphinx.conf
生成的配置文件应该是一个良好的开端不过,你务必检查对[狮身人面像配置参考]配置(http://sphinxsearch.com/docs/2.0.2/confgroup-index.html)。
使用Django的ORM与狮身人面像
现在,您可以查询和使用Django的ORM管理您实时指数。可以插入和更新使用以下方法中的索引文件。下面的示例使用[全文库](https://github.com/btimby/fulltext)读取文件内容为纯文本。
进口操作系统,时间,全文
#文件添加到索引中。
路径='resume.doc“
ST = os.stat(路径)
MyIndex.objects.create(
 名=路径,
 含量= fulltext.get(路径,''),
 大小= st.st_size,
 日期= time.strftime(“%Y-%M-%D%H:%M:%S',time.localtime(st.st_mtime)),

#更新索引的文档
DOC = MyIndex.objects.get(PK = 1)
doc.content = fulltext.get(路径,'')
doc.size = st.st_size
doc.date = time.strftime(“%Y-%M-%D%H:%M:%S',time.localtime(st.st_mtime))
doc.save()
您可以执行使用Django的搜索运算符全文查询。阅读Django文档以获取更多信息。
MyIndex.objects.filter(content__search ='Foobar的')
查询是通过直接传递给狮身人面像,所以狮身人面像扩展查询语法得到尊重。
单元测试
狮身人面像后端Django会忽略create_test_db和destroy_test_db电话。配置狮身人面像数据库时,这些调用将失败,导致您无法运行测试。然而,这意味着,任何已配置的斯芬克斯数据库将在测试期间被使用。只要你写你的测试,考虑到这一点,应该没有问题。 。记住,你可以使用测试名的数据库连接参数在测试运行重定向查询不同的数据库连接

要求

  • 的Python
  • 在Django的

意见 django_sphinx_db

评论没有发现
添加评论
打开图片!