次のデータを含む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」、「」が見つかります。チーム"
ありがとうございました