フィールドの各トークンが、ユーザーの検索で少なくとも1つのトークンと一致することを確認する必要があります。
これは、簡略化のための一般化された例です。
させてStore_Name = "Square Steakhouse"
ユーザーがSquareまたはSteakhouseを検索するときに、このドキュメントに一致するクエリを作成するのは簡単です。さらに、デフォルトのアナライザーにkstemフィルターが接続されているため、Steakhouseも一致する可能性があります。
{
"size": 30,
"query": {
"match": {
"Store_Name": {
"query": "Square",
"operator": "AND"
}
}
}
}
残念ながら、Store_Nameフィールドの各トークンを一致させる必要があります。次の動作が必要です。
Query: Square Steakhouse Result: Match
Query: Square Steakhouses Result: Match
Query: Squared Steakhouse Result: Match
Query: Square Result: No Match
Query: Steakhouse Result: No Match
要約すれば
- アナライザーの機能を利用する必要があるため、not_analyzedを使用するオプションはありません。
- kstem、カスタムシノニム、カスタムchar_filter、小文字フィルター、および標準のトークナイザーを使用する予定です。
ただし、フィールドの各トークンが一致していることを確認する必要があります
これはElasticSearchで可能ですか?