検索フォームに複数のキーワードが入った場合、複数のfieldを持つ1documentの中で指定するfieldにすべてのキーワードがあればHitさせたいです。
indexが下記の状態の場合、どのようなQueryを書けばよいでしょうか?
PUT testIndex/testType { "mappings" : { "testIndex" : { "properties" : { "title" : { "type" : "text" }, "subTitle" : { "type" : "text" }, "discription" : { "type" : "text" }, "tag" : { "type" : "text" }, "memo" : { "type" : "text" }, "memo2" : { "type" : "text" }, } } } } POST /testIndex/testType { "title" : "麺類のすべて", "subTitle" : "蕎麦はなぜ太らないのか?", "discription" : "パスタとピザを一緒に食べるならピザは手で食べるべきではない", "tag" : "うどん,ほうとう,きしめん", "memo" : "焼きそばを食べていますが今日は胃の調子が悪いようです。" "memo2" : "カレーライスも好き" }
『麺類 蕎麦 パスタ うどん 焼きそば』で検索すればヒット
『麺類 蕎麦 パスタ うどん カレーライス』で検索すればヒットしない。
という場合どのようになりますか?
SQLであれば
SELECT * FROM testIndex WHERE CONCAT(title,subTitle,discription,tag,memo) like '%麺類%' AND CONCAT(title,subTitle,discription,tag,memo) like '%蕎麦%' AND CONCAT(title,subTitle,discription,tag,memo) like '%パスタ%' AND CONCAT(title,subTitle,discription,tag,memo) like '%うどん%' AND CONCAT(title,subTitle,discription,tag,memo) like '%きそば%';
という形になると思います。
トライしてみた結果を書いてください。そもそも日本語を検索できるようになるまでに何種類か方法がありいくつか準備が必要なのですが、それが記載されてないので試したように見えません。
回答1件
あなたの回答
tips
プレビュー