Elasticsearch クエリーのデフォルトのオペレーターは OR です。これ自体は問題ないのですが、このORが適用されるタイミングがとても違和感 … 。 どうやら、リクエストする単語が1単語でもアナライザーで解析され、分割された最小単語単位でORで検索されるみたい! どういう事かと言うと、キーワード:「東京都」 で検索した場合、アナライズ後、「東京」 と 「都」 の2単語にトークナイズされ、検索は 「東京 OR 都」で検索される動きをしているようです。 もちろんこの場合、「東京都」を含んでいるドキュメントもマッチしますが、「東京」だけ、「都」だけ、または、「東京 … 都」「都 … 東京」などの単語が離れているドキュメントにもマッチする可能性があります。 ネットを調べてもあまり見当たらず、みんなどうしているんだろう?当たり前の仕様なのか?この動き違和感ありありです。 デフォルトの仕様を
![Elasticsearch 日本語でフレーズ検索が必要なわけ](https://cdn-ak-scissors.b.st-hatena.com/image/square/9d1aa5cfcec80c2f17e5195bb3082594a03e7caa/height=288;version=1;width=512/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1200%2F1%2AZlOfELxK8fB2hSvZi_obDg.jpeg)