0

次のデータを含むelasticsearchインデックスがあります。

「Aチーム」(例)

私のインデックス設定は次のとおりです。

"index": {
    "number_of_shards": "1",
    "provided_name": "tyh.tochniyot",
    "creation_date": "1481039136127",
    "analysis": {
      "analyzer": {
        "whitespace_analyzer": {
          "type": "whitespace"
        },
        "ngram_analyzer": {
          "type": "custom",
          "tokenizer": "ngram_tokenizer"
        }
      },
      "tokenizer": {
        "ngram_tokenizer": {
          "type": "ngram",
          "min_gram": "3",
          "max_gram": "7"
        }
      }
    },

私が検索するとき:

_search
{
"from": 0,
"size": 20,
"track_scores": true,
"highlight": {
  "fields": {
    "*": {
      "fragment_size": 100,
      "number_of_fragments": 10,
      "require_field_match": false
    }
  }
},
"query": {
  "match": {
    "_all": {
      "query": "Tea"
    }
  }
}

ハイライト結果が得られることを期待しています:

    "highlight": {
      "field": [
        "The A-<em>Tea</em>m"
      ]
}

しかし、私はハイライトをまったく取得しません。

検索に空白を使用し、インデックス作成に ngram を使用する理由は、検索フェーズで検索している単語を分割したくないためです。たとえば、「Team」を検索している場合、「Tea」、「eam」、「」が見つかります。チーム"

ありがとうございました

4

1 に答える 1