3

我试图将副总裁映射到副总裁,将首席执行官映射到首席执行官等等。因此,当我的搜索关键字是 VP 时,我也可以看到副总裁的结果。Searchkick gem 是我用来实现这一目标的。

我有一个像下面这样的人模型

class Person < ApplicationRecord
  searchkick merge_mappings: true,
             word_start: [:name],
             text_middle: [:title],
             synonyms:[['vp', 'vice president'],
                       ['it', 'information technology'],
                       ['ceo', 'chief executive officer'],
                       ['cto', 'chief technology officer']]
end

在重新索引我的整个数据之后,当我检查索引元数据时,这就是我所看到的

"analysis": {
  "filter": {
    "searchkick_synonym": {
      "type": "synonym",
      "synonyms": [
        "vp,vicepresident",
        "it,informationtechnology",
        "ceo,chiefexecutive officer",
        "cto,chieftechnology officer"
      ]
    }
  }
}

为什么这个映射像没有空格的副总裁?这是同义词在我的搜索查询中不起作用的原因吗?我创建的模型类有什么问题吗?

注意:ElasticSearch 版本:7.6.0,SearchKick Gem:4.3.0

在此处输入图像描述

4

1 回答 1

1

synonyms选项不支持多词同义词。在 Searchkick 4.4.0+ 中,您可以使用search_synonyms多词同义词选项。

于 2020-09-02T01:22:07.787 回答