Elasticsearch系列九 Bool 查詢

2021-09-27 10:32:48 字數 1605 閱讀 9585

案例書籍推薦

bool查詢對應lucenne中的booleanquery,它由乙個或者多個子句組成,

–match

分詞匹配,下面的例子會對查詢盡心分詞,分為"寶馬" 「多少」 "馬力 "那麼所有包含這三個詞中的乙個或者多個文件就會被搜尋出來.

}}

}

–match_phrase

針對上面的例子,乙個文件"我的保時捷也不錯" 也會 被搜尋出來, 那麼想要精確匹配所有同時包含"寶馬"「多少」"馬力"的文件,需要用到match_phrase

}}

}

有的時候採用這種方式進行搜尋可能比較嚴,我們會希望有多個可調節的因子,也就是說如果最少滿足乙個匹配也可以,就要使用到slop

}}

}

–multi_match

–如果我們希望兩個字段進行匹配, 其中的乙個欄位有這個文件就滿足的話就要使用該查詢

(這種查詢會涉及到匹配評分的問題)

}}

–best_fields

–我們希望完全匹配的文件占得評分比較高, 則需要使用best_fields,下面的示例就是

完全匹配"寶馬" 「發動機」 的文件會比較靠前, 如果只匹配寶馬的文件評分乘以0.3的係數

}}

–most_fields

–我們希望越多字段匹配的文件評分越高, 就要使用most_fields

}}

–cross_fields

–我們希望這個詞條的分詞詞彙是分配大不同欄位中的, 那麼就要使用cross_fields

}}

–term查詢子句

–該類查詢代表的是完全匹配,即不進行分詞器分析,文件中必須包含整個搜尋的詞彙,下面的這個例子查出的所有文件都包含"汽車保養"這個片語的詞彙

使用term要確定的是這個地段是否 「被分析(analyzed)」 預設的字串是被分析的

}}

–下面的這個例子就是被分析過的

put my_index

,"exact_value":}

}}}

put my_index/my_type/1

其中full_text是被分析過的,所以full_text的索引中存的就是[quick, foxes] 而extra_value中存的是[quick foxes!]

–bool聯合查詢:must,should,must_not

},

"must_not":}

}}}

案例
},

}]}}

}

書籍推薦

elasticsearch技術解析與實戰

深入理解elasticsearch

elasticsearch啟動報錯系列

wget 解壓tar zxvf elasticsearch 6.2.4.tar.gz 在啟動過程 中會遇到這兩個問題 1 max file descriptors 4096 for elasticsearch process is too low,increase to at least 65536...

ElasticSearch系列04 核心概念

一 es配置檔案詳解 elasticsearch.yml es的基本配置檔案 詳見elasticsearch中文.yml logging.yml 日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置來設定就行了。二 es中的核心概念 cluster...

Elasticsearch系列之八 操作API

date 2019 04 07 思考了一下還是系統地將操作api總結一下,基本是參看官方文件,使用kibana執行命令 特別方便 我為了使用漢化kibana 不想執行python檔案 將es版本換成6.7.1,相應的ik外掛程式 kibana都換成了6.7.1版本 沒有用最新的7.0版本 建議首先安...