でpossessive_englishステマーの使用:私は、次の解析設定を持っているElasticsearch
"settings" : {
"index" : {
"creation_date" : "1469213620697",
"analysis" : {
"filter" : {
"stem_possessive_filter" : {
"name" : "possessive_english",
"type" : "stemmer"
}
},
"analyzer" : {
"stem_analyzer" : {
"filter" : [ "standard", "lowercase", "stem_possessive_filter" ],
"tokenizer" : "standard"
}
}
},
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "VQgaaZquQUOqKNYxGPH7cg",
"version" : {
"created" : "2020199"
}
}
},
は、文字列型のすべてのフィールドは、次のマッピングがあります。
"field_name" : {
"type" : "string",
"analyzer" : "stem_analyzer",
"search_analyzer" : "standard"
}
私は認知症を書くことができるようにしたいですアルツハイマーのまたはアルツハイマーの痴呆の句。その結果、私は取得したいアルツハイマー病の痴呆...。
Multi match query所持が使用されていない場合は動作しません:
{'query': {'multi_match': {'query': "dementia in alzheimer", 'type': 'phrase', 'fields': ['_all']}}}
しかし、所持が使用されている場合、それは動作します:一方
{'query': {'multi_match': {'query': "dementia in alzheimer's", 'type': 'phrase', 'fields': ['_all']}}}
、Bool query作品所持品を使用しない場合:
{'query': {'bool': {'must': [{'match_phrase': {'Diagnosis': "dementia in alzheimer"}}]}}}
所持が使用されている場合しかし、それは動作しません:
{'query': {'bool': {'must': [{'match_phrase': {'Diagnosis': "dementia in alzheimer's"}}]}}}
は、どのように仕事上のすべてのクエリを作るには?
- UPDATE - クエリでstem_analyzer
を追加する場合
ブールクエリが動作します。したがって、検索中に使用します。そして、私は所有の有無にかかわらず、フレーズの結果を得る。 mybody = {'query': {'bool': {'must': [{'match_phrase': {'Diagnosis': {'query': "dementia in alzheimer's", 'analyzer': 'stem_analyzer'}}}]}}}
ただし、アナライザーを追加すると、マルチマッチクエリはまったく機能しなくなります。私は、所有権の有無にかかわらず、フレーズの結果は得られません。 {'query': {'multi_match': {'query': "dementia in alzheimer's", 'type': 'phrase', 'analyzer': 'stem_analyzer', 'fields': ['_all']}}}
なぜマルチアナライザでアナライザが機能しないのですか?