前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Elasticsearchを初めて使用しているのですが想定通りに検索できないため検索方法を教えていただけないでしょうか。
具体的に
「京都市」で検索すると「京都市」はもちろん検索できるのですが「東京都」まで検索結果に出てきます。
「京都」の部分でひっかかっているのでしょうが「京都市」で検索しているので「京都市」だけが結果に出てくるようにしたいです。
mapping.jsonの設定不備なのか検索側の検索方法の不備なのかわかりません。
お分かりになる方助けてください。
よろしくお願いいたします。
{ "query": { "multi_match": { "query": "京都市", "type": "best_fields", "fields": [ "shop_name", "address" ] } } } 設定JSON { "settings": { "number_of_replicas": "1", "number_of_shards": "5", "refresh_interval": "60s", "max_result_window" : "100000", "analysis": { "filter": { "pos_filter": { "type": "kuromoji_part_of_speech", "stoptags": [ "助詞-格助詞-一般", "助詞-終助詞" ] }, "greek_lowercase_filter": { "type": "lowercase", "language": "greek" }, "synonym_filter" : { "type" : "synonym", "synonyms_path" : "analysis/synonym.txt" } }, "tokenizer": { "kuromoji": { "type": "kuromoji_tokenizer", "user_dictionary": "analysis/ec_dic.dic" }, "ngram_tokenizer": { "type": "nGram", "min_gram": "2", "max_gram": "3", "token_chars": [ "letter", "digit" ] } }, "analyzer": { "kuromoji_analyzer": { "type": "custom", "tokenizer": "kuromoji", "char_filter": "html_strip", "filter": [ "kuromoji_baseform", "pos_filter", "greek_lowercase_filter", "cjk_width", "synonym_filter" ] }, "ngram_analyzer": { "tokenizer": "ngram_tokenizer", "filter": [ "greek_lowercase_filter", "cjk_width" ] } } } }, "mappings" : { "shop" : { "_source": { "enabled": true }, "_all" : { "enabled" : false, "analyzer" : "ngram_analyzer" }, "properties" : { "shop_name" : { "type" : "text", "analyzer" : "ngram_analyzer" }, "address" : { "type" : "text", "analyzer" : "ngram_analyzer" } } } } }
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー