お世話になっております。
Multi Matchクエリで2-gramの同義語検索、かつフレーズ検索をしたいのですが、
同義語展開後、フレーズ検索をすることができません。
どなたか解決策をご存じでしょうか。
1.アナライザー設定
{
"analysis": {
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "Analyzer\\synonym.txt"
},
"bigram_filter": {
"type": "ngram",
"min_gram": "2",
"max_gram": "2"
},
"pos_filter": {
"type": "kuromoji_part_of_speech",
"stoptags": [ "記号", "記号-一般", "記号-読点", "記号-句点", "記号-空白", "記号-括弧開", "記号-括弧閉" ]
},
"normalize": {
"name": "nfkc",
"type": "icu_normalizer"
}
},
"char_filter": {
"whitespace_remove": {
"pattern": "\\s{1,}",
"type": "pattern_replace",
"replacement": ""
},
"map": {
"type": "mapping",
"mappings_path": "Analyzer\\mapping.txt"
},
"zenkakuspace_remove": {
"pattern": " ",
"type": "pattern_replace",
"replacement": ""
},
"normalize": {
"mode": "compose",
"name": "nfkc",
"type": "icu_normalizer"
}
},
"analyzer": {
"jp_search_bigram": {
"filter": [ "pos_filter", "synonym", "normalize", "bigram_filter" ],
"char_filter": [ "map", "normalize", "whitespace_remove", "zenkakuspace_remove" ],
"type": "custom",
"tokenizer": "whitespace_tokenizer"
},
"jp_bigram": {
"filter": [ "pos_filter", "normalize" ],
"char_filter": [ "map", "normalize", "whitespace_remove", "zenkakuspace_remove" ],
"type": "custom",
"tokenizer": "jp_bigram_tokenizer"
}
},
"tokenizer": {
"jp_bigram_tokenizer": {
"type": "ngram",
"min_gram": "2",
"max_gram": "2"
},
"whitespace_tokenizer": { "type": "whitespace" }
}
}
2.検索クエリ
GET index1/_search
{
"from": 0,
"size": 100,
"query": {
"bool": {
"must": [
{
"multi_match": {
"type": "phrase",
"query": "建て替え",
"analyzer": "jp_search_bigram",
"fields": [
"Field1",
"Field2"
]
}
}
]
}
}
}
フィルターでなく、トークナイザーで2-gramにすればフレーズ検索できるのですが、
その場合、同義語展開ができないため質問させていただきました。
よろしくお願いいたします。