我们正在使用 Couchbase 4.6.2 并尝试使用全文搜索功能。我们的尝试是搜索、排序和分页。
目前,我们使用默认索引设置对其进行索引。
我们遇到的问题是,当 FTS 功能对记录进行排序时,它会根据字段中的单个单词进行排序。根据文档,这似乎是因为全文搜索索引的工作方式(以及在索引中选择的分析器)。它接受每个单词并在其上创建索引。然后在执行排序时,它会为该字段选择最小值或最大值,并对该值进行排序。
是否有可能让 FTS 像现在一样在每个单词的基础上对字段进行索引,但对属性的整个内容进行排序?
小智 5
排序操作使用指定字段的索引中的术语。因此,为了对整个值进行排序,您必须使用关键字分析器,因为它将整个字段值保留为单个术语。通过在该字段上使用关键字分析器,诸如“Video Games”之类的值将被索引为单个术语。
然后,如果您指定该字段进行排序,它将按整个值排序。此外,与其他答案之一相反,排序对索引值进行操作,并且不需要存储值。
一个相关的问题是,有时您想在字段上搜索并对其进行排序,在这种情况下,您想使用关键字以外的分析器。为了适应这两种用例,您只需对该字段进行两次索引,一次用于搜索,一次用于排序。为此,您只需为它们指定不同的名称。类似于用于搜索的 'category' 和用于排序的 'category.sort' 之类的东西。
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |