3

私は副社長を副社長、CEO を最高経営責任者などにマッピングしようとしていました。私の検索キーワードが VP の場合、Vice President の結果も表示されるようにしました。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 に答える