标准数据库操作对于大量文本搜索来说太过简陋了。虽然上面的示例可以看作是对字符串的操作,但是全文搜索查看的是实际的单词。依据所使用的系统,可以采用下面的某些方法:
使用搜索软件有很多选项,最常见的有 Elastic 和 Solr。它们都是基于全文搜索的解决方案。要用它们搜索来自 Django 模型的数据,你需要一个抽象层,将数据(包括对数据库 id 的指针)转换为文本文档。当使用该引擎的某次搜索返回了一份文档,你可以在数据库中查看它。有很多第三方库被设计为处理这种问题。
PostgreSQL 内置了其专属的全文本搜索实现。虽然并不像其它搜索引擎那样强大,但它的优点是内置在数据库中,所以它能很方便的与其它关联查询条件进行联合查询,如按分类查询。
django.contrib.postgres
模块提供了一些助手函数来执行这些查询。例如,查询可能筛选出所有提到了 "cheese" 的博客条目:
>>> Entry.objects.filter(body_text__search="cheese")
[<Entry: Cheese on Toast recipes>, <Entry: Pizza recipes>]
你也可以在联合字段或关联模型上进行筛选:
>>> Entry.objects.annotate(
... search=SearchVector("blog__tagline", "body_text"),
... ).filter(search="cheese")
[
<Entry: Cheese on Toast recipes>,
<Entry: Pizza Recipes>,
<Entry: Dairy farming in Argentina>,
]
ASP.NET HtmlInputButton 控件 HTML 服务器控件定义和用法 HtmlInputButton 控件用于控制 input type="button" 、input type="su...
ASP.NET ImageButton ValidationGroup 属性 ImageButton 控件定义和用法 当 ImageButton 控件被点击时,OnClientClick 属性用于...
ASP.NET CalendarDay Date 属性 CalendarDay 控件定义和用法 Date 属性用于获取表示日期的日期变量。 实例 下面的实例显示了如何...
ASP.NET RadioButtonList RepeatLayout 属性 RadioButtonList 控件定义和用法 RepeatLayout 属性用于获取或设置如何显示 RadioBu...
ASP.NET Items 属性 ListControl 控件参考手册定义和用法 Items 属性表示列表控件中的项目。 该属性通常用于获取列表控件中每个...