Sorting 如何配置Couchbase全文搜索索引以按全文属性排序

Sorting 如何配置Couchbase全文搜索索引以按全文属性排序,sorting,couchbase,Sorting,Couchbase,我们正在使用Couchbase 4.6.2并尝试使用全文搜索功能。我们的尝试是搜索、排序和分页 目前,我们使用默认索引设置对其进行索引 我们遇到的问题是,当FTS功能对记录进行排序时,它会根据字段中的单个单词进行排序。根据文档,这似乎是因为全文搜索索引是如何工作的(以及在索引中选择的分析器)。它接受每个单词并在其上创建索引。然后,当执行排序时,它为该字段选择最小值或最大值,并根据该值进行排序 FTS是否可以像现在一样按单词索引字段,但对属性的整个内容进行排序?您可以尝试在搜索请求中添加“排序”选

我们正在使用Couchbase 4.6.2并尝试使用全文搜索功能。我们的尝试是搜索、排序和分页

目前,我们使用默认索引设置对其进行索引

我们遇到的问题是,当FTS功能对记录进行排序时,它会根据字段中的单个单词进行排序。根据文档,这似乎是因为全文搜索索引是如何工作的(以及在索引中选择的分析器)。它接受每个单词并在其上创建索引。然后,当执行排序时,它为该字段选择最小值或最大值,并根据该值进行排序

FTS是否可以像现在一样按单词索引字段,但对属性的整个内容进行排序?

您可以尝试在搜索请求中添加“排序”选项,以探索结果的排序情况, 例如:“排序”:[“字段名”]表示升序和升序 “排序”:[“-fieldname”]表示降序。
但为此,您需要在索引创建期间启用“存储字段”/“存储动态字段”。

排序使用指定字段索引中的术语进行操作。因此,为了对整个值进行排序,必须使用关键字分析器,因为它将整个字段值保留为单个项。通过在该字段上使用关键字分析器,像“视频游戏”这样的值将作为单个术语索引

然后,如果指定该字段进行排序,它将按整个值排序。此外,与其他答案中的一个相反,排序对索引值进行操作,并且不需要存储值


一个相关的问题是,有时您希望在字段上搜索并对其进行排序,在这种情况下,您希望使用除关键字以外的分析器。为了适应这两种用例,您只需对字段进行两次索引,一次用于搜索,一次用于排序。要做到这一点,你只需给他们起不同的名字。类似“category”的搜索和“category.sort”的排序功能。

FYI v5.0对您来说可能会快得多,上周刚刚发布,并进行了各种错误修复和改进。