0

search_text全文検索フィールドと呼ばれるフィールドがあります。

search_text.wordsこのフィールドにインデックスを付けるために ngrams を使用しています。単語全体にインデックスを付ける新しいサブフィールドを追加したかったのです。

これを実装しようとしましたが、クエリを実行するとsearch_text.words常に 0 ヒットが返されます。

私は次のように作成しています:

  "search_text" => {
      "type" => "string",
      "analyzer" => "ngram",
      "search_analyzer" => "ngram_search",
      "fields" => {
          "words" => {"type" => "string",
                      "analyzer" => "ngram_search"}
      }
  }

ここに完全なデモがあります:

https://www.dropbox.com/s/wwxm3qe0oxc2z5y/Slimmed%20ElasticSearch%20Text%20%281%29.html?dl=0

4

1 に答える 1

1

ドロップボックス ファイルを見ると、問題はsearch_variable、一括クエリでマッピング タイプを使用しているときにマッピング タイプが呼び出されることだと思いますtest_type

したがって、マッピングは適用されません。

一括クエリをこれに変更すると、機能します

bulk_insert_items = items_to_insert.flat_map do |item|
      [
        {index: {_index: 'test_index', _type: 'search_variable'}},
        item
      ]
end
于 2016-03-11T09:07:35.527 に答える