使用django和postgresql的简易fts

django-searchable的Python项目详细描述


使用django和postgresql轻松进行全文搜索。理智的默认值+向量字段、索引和数据库触发器的自动创建。

示例

使用SearchableModel类扩展模型,并使用SearchableTextField类自动设置全文搜索:

fromdjango.db.modelsimportTextFieldfromdjango_searchable.modelsimportSearchableModel,SearchableTextFieldclassBlog(SearchableModel):author_name=TextField()# will NOT have FTS setup automaticallytitle=SearchableTextField()# will have FTS setup automaticallytext=SearchableTextField()# will have FTS setup automatically

然后通过博客管理器进行搜索:

# takes a string of space separated termsresults=Blog.objects.search('spiderman suits')# or a list of termsresults=Blog.objects.search(['water','baskets','leaking'])# or a SearchQuery objectfromdjango.contrib.postgres.searchimportSearchQueryquery=~SearchQuery('superman')&SearchQuery('batman')results=Blog.objects.search(query)

.search添加一个rank注释,并自动过滤和排序生成的queryset。

默认情况下,.search将搜索模型上的所有SearchableTextField字段,但您可以指定任何子集:

results=Blog.objects.search('who is venom',fields=['title'])

贡献

pipenv install --dev
createuser -s -P test_user  # use 'password'
pipenv run ./manage.py test

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

推荐PyPI第三方库


热门话题
java使用spring并在CXF中生成服务器和客户端   重载是否可以重载抽象Java类中的抽象方法,但只实现子类中的一个重载方法?   javawhy系统。currentTimeMillis()是否生成不正确的长值?   java使用Apache POI API将xlsx转换为csv   资源Java找不到文件?   java APDU命令验证返回6a88   JAVAlang.ExceptionInInitializerError是在交换机中构造对象时创建的   java使用嵌套while循环打印星形金字塔   sql Java ResultSet获取返回的字段名   java无法将字符串更改为整数,因为负号跟在数字后面   为什么番石榴/爪哇使用“可能”。isPresent()与可选项相反。是否显示(可能)?   JavaJUnit4看不到bean   JavaJBoss以错误的顺序启动servlet   java无法下载Maven依赖项AnypointStudio   安卓如何在java中存储持久数据   java SQL Server JDBC的驱动程序类名是什么   java中针对大输入的性能优化BufferedReader   java eclipse自动完成内容助理