Elasticsearchとkuromoji_neologd_tokenizerで日本語フリーワード検索を検証しているのですが、
関連性のあるデーターが抽出されてしまい検索結果が想定よりかなり広く抽出されてしまいます。
関連性のあるデータの抽出という素晴らしい機能ですが、本案件ではいささかノイズになってしまってます。
現在のクエリーの例は以下の通りです。
text
1curl -XGET localhost:9200/my_index/my_type/_search?pretty -d ' 2{"query": 3 {"bool": 4 {"must": 5 [ 6 {"match": {"description": "新宿駅"}}, 7 {"match": {"description": "カフェ"}} 8 ] 9 } 10 } 11} 12'
上記の例だと、トークナイズで新宿+駅に分割され、"新宿"or"駅"を含む"カフェ"だとかなり緩い一致となってしまい、テスト工程で困ってます。
そこで質問ですが、検索キーワードのみズバリ検索したい時はどの様にクエリーを記述したら良いでしょうか?
※地域が限定的なポータルサイトの為、内容的にもキーワード的にもかなり似かよったコンテキストなのでスコアリングでの判断も難しそうです。
(実際スコアが高いデータでも新宿じゃないデータが上位に来てしまいます..)
※CGM的な投稿もあるので、入力データを調整して投入する様な運用もほぼNGです。
よろしくお願いします。
あなたの回答
tips
プレビュー