ElasticSearch を使用してドキュメントのインデックスを作成しています。
私のマッピングは次のとおりです。
"mongodocid": {
"boost": 1.0,
"store": "yes",
"type": "string"
},
"fulltext": {
"boost": 1.0,
"index": "analyzed",
"store": "yes",
"type": "string",
"term_vector": "with_positions_offsets"
}
完全な全文を強調表示するためnumber_of_framgments
に、0 に設定しています。
次の Lucene のような文字列クエリを実行すると:
{
"highlight": {
"pre_tags": "<b>",
"fields": {
"fulltext": {
"number_of_fragments": 0
}
},
"post_tags": "</b>"
},
"query": {
"query_string": {
"query": "fulltext:test"
}
},
"size": 100
}
結果セット内の一部のドキュメントでは、強調表示されたフルテキストの長さがフルテキスト自体よりも短くなっています。私はnumber_of_fragments
0 に設定してpre_tags
/post_tags
を追加しているので、これは起こらないはずです。
ここで、奇妙な動作が発生します。次のようにして、失敗した要素の 1 つだけを検索すると、次のようになります。
{
"highlight": {
"pre_tags": "<b>",
"fields": {
"fulltext": {
"number_of_fragments": 0
}
},
"post_tags": "</b>"
},
"query": {
"query_string": {
"query": "fulltext:test AND mongodocid:4d0a861c2ebef6032c00b1ec"
}
},
"size": 100
}
その後、すべて正常に動作します。
何か案は?