1、match query實現(xiàn)模糊搜索,該方式會對匹配文本進(jìn)行分詞然后匹配分詞后的每個詞項,匹配操作有OR和AND,默認(rèn)為OR
{
"query": {
"match": {
"text": {
"query": "hello world",
"fuzziness": "AUTO",
"operator": "and"
}
}
}
}
查詢字符串首先進(jìn)行分析,會產(chǎn)生詞項 [hello,world] ,并且每個詞項根據(jù)指定的 fuzziness 進(jìn)行模糊化。如果match query所查詢的字段為keyword類型則不會進(jìn)行分詞,等同term精確匹配查詢。
2、match phase query實現(xiàn)模糊搜索,該方式不會對匹配文本進(jìn)行分詞,能夠在text類型的字段上進(jìn)行數(shù)據(jù)庫like的匹配效果。
{
"query": {
"match_phrase": {
"message": "this is a test"
}
}
}
3、fuzzy query實現(xiàn)模糊搜索,fuzzy 查詢是一個詞項級別的查詢,所以它不做任何分析。它通過某個詞項以及指定的 fuzziness 查找到詞典中所有的詞項。 fuzziness 默認(rèn)設(shè)置為 AUTO 。
{
"query": {
"fuzzy": {
"text": "surprize"
}
}
}