定制Couchbase全文搜索索引的8种方法


Couchbase搜索服务支持创建用于全文搜索的特殊用途索引,为在JSON文档上进行自然语言查询提供广泛的能力。Couchbase全文搜索索引支持多种查询类型,如:

  • 匹配,匹配短语,单据ID和前缀查询
  • 合取,析取和布尔字段查询
  • 数值范围和日期范围查询
  • 地理空间查询
  • 查询字符串查询,它使用一种特殊的语法来表达每个查询的详细信息

要执行全文搜索,必须首先在搜索必须针对的桶上创建全文搜索索引。可以对指定桶内文档的文本内容和其他内容执行搜索。

通过选择bucket并选择用默认设置索引所有字段,可以快速创建全文搜索索引,或者可以在不同方面对默认索引进行高度定制。在索引定义中使用自定义提供了优于默认索引的性能优势,因为可以进行优化,并且可以灵活地选择如何分析每个字段。

在本文中,我们将讨论定制全文搜索索引的不同方法。这些定制可以通过UI或REST API实现。为了便于理解,我将坚持使用示例中的UI。

  1. 只编制有关文件的索引。这将有助于减少空间和内存的使用。选择一个类型映射来索引一组特定的文档,而不是索引桶中所有类型的文档。还有一个选项可以指定全文搜索索引如何识别文档的类型-使用JSON字段'type',或者使用分隔符或正则表达式从文档ID派生。默认值是使用JSON字段'type'。
  2. 选择只对文档中的某些字段进行索引,而不是对所有不相关的字段也进行索引。同样,这里的好处是优化了空间和内存消耗。全文搜索索引允许对简单字段或嵌套字段进行索引。在选择要索引的字段时,指定字段类型,别名(可搜索为)和分析程序以分析此字段。如果你需要在搜索结果中突出显示,你也可以选择“存储”和“包含术语向量”。您可以选择“包含在(_AL)如果您希望在查询中不使用fieldname范围的情况下可以搜索此字段,请执行“Field”。
  3. 创建自定义分析器或使用开箱即用的分析器。Couchbase Search有几个分析器,如en,fr,keyword,standard,simple,web等,这些可能不是最适合您的数据集。根据数据集的特性,也可以自定义分析器。CouchBaseSearch还提供了创建您自己的分析器的功能,方法是从标准字符筛选器,令牌化器和令牌筛选器中进行选择。

4.创建自定义字符筛选器,标记器和标记筛选器,或使用开箱即用的。就像分析器一样,一些字符筛选器,令牌化器和令牌筛选器是开箱即用的,Couchbase Search提供了创建自己的功能。

5.自定义分析器可以有多个字符筛选器或令牌筛选器。您可以在定义自定义分析器时指定这些。

6.针对不同的领域选择不同的分析仪。如果有多个字段需要分析,则可以对每个字段进行不同的分析。例如,您可能希望对URL字段使用“web”分析器,而对name字段使用“en”分析器。

7.选择对同一字段进行不同的分析。在某些情况下,特定字段中的文本可能是多种语言的。您可能希望对这些字段应用不同的语言分析器,以最大限度地利用多语言文本。

8.在不同的索引类型之间进行选择--版本5.0(Moss)或版本6.0(Scorch)。Version5.0(Moss)是在测试,开发和生产中使用的索引的标准形式。Version6.0(Scorch)减少了磁盘上索引占用空间的大小,并为索引和变异处理提供了增强的性能。在查询涉及使用前缀或通配符查询的情况下,5.0版的性能可能更好。在大多数其他情况下,版本6.0将提供更好的性能。

根据数据的特点,充分利用Couchbase Search service为全文搜索索引提供的自定义功能,并提高查询的性能。

进一步阅读