私はインデックスを持っていると仮定すると、私はこの文を使用して、いくつかのドキュメントを追加しました:ElasticsearchのQUERY_STRING - 正確なフレーズ問題
POST test/item/_bulk
{"id": 1, "text": "one two"}
{"id": 2, "text": "one two three"}
{"id": 3, "text": "three one two"}
{"id": 4, "text": "three one two four"}
{"id": 5, "text": "one two|"}
{"id": 6, "text": "|one two"}
{"id": 7, "text": "|one two|"}
{"id": 8, "text": "one|two"}
{"id": 9, "text": "one| two"}
{"id": 10, "text": "one |two"}
{"id": 11, "text": "one | two"}
私はこの検索をしたい:
GET test/item/_search
{
"query":
{
"query_string":
{
"query": "\"one two\"",
"fields": ["text"],
"analyze_wildcard": "true",
"allow_leading_wildcard": "true",
"default_operator": "AND"
}
}
}
文書1を返すように-7。
ドキュメントとクエリの両方で、さまざまなアナライザとトークナイザ(std、whitespaceなど)を試しましたが、どれも私に希望の結果を与えませんでした。
たとえば、stdアナライザはすべてのドキュメントを返し、空白アナライザは1〜4だけを返しました。
希望の結果を返すアナライザー/トークナイザー/パラメーターはありますか?
注:だけ明確にするために、私のデータは短いとなしの一般的な特性を持つ非常に長い文字列の両方で構成されています。例として挙げた単語(1,2,3,4)と記号(|)は便宜上のものであり、他の単語や単語以外の文字に置き換えることができます。
範囲のクエリは私のニーズには無関係ですが、データは共通の特性を持たない文字列で構成されています。 "1"/"2"/"3"/"4"は単なる例です。これを明確にするためにメモを追加しました。とにかくありがとう! – AviadG