您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Elasticsearch實(shí)現(xiàn)類Google高級(jí)檢索的實(shí)例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
通過高級(jí)搜索配置搜索項(xiàng),能更準(zhǔn)確的過濾掉不相干信息,獲取最想要的檢索信息。
以Google搜索為例(截取核心片段):
需要分詞處理;
若需要指定字段,則使用matchQuery實(shí)現(xiàn);
若無需指定字段的全文檢索,則使用queryStringQuery實(shí)現(xiàn);
需要完整匹配字符,使用wildcardQuery結(jié)合”*”實(shí)現(xiàn);
空格分隔每個(gè)關(guān)鍵詞,需要將多個(gè)詞空格拆分,然后對(duì)每個(gè)關(guān)鍵詞通過should結(jié)合wildcardQuery遍歷實(shí)現(xiàn);
包含以下全部關(guān)鍵詞的反面,
若需要指定字段,則使用must_not結(jié)合matchQuery實(shí)現(xiàn);
若無需指定字段,則使用must_not結(jié)合queryStringQuery實(shí)現(xiàn);
限定搜索的開始和結(jié)束時(shí)間,通過rangeQuery實(shí)現(xiàn)。
根據(jù)關(guān)鍵詞位置的不同,采用不同的實(shí)現(xiàn);
關(guān)鍵詞位于title字段:指定title進(jìn)行檢索;
關(guān)鍵詞位于content字段:指定content進(jìn)行檢索;
關(guān)鍵詞位于全部字段:不指定字段進(jìn)行檢索,多使用 queryStringQuery實(shí)現(xiàn)。
POST detail_index/_search
{
"from" : 0,
"size" : 10,
"query" : {
"bool" : {
"must" : [
{
"match" : {
"title" : {
"query" : "蘋果喬布斯",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"wildcard" : {
"title.keyword" : {
"wildcard" : "*蘋果總裁庫(kù)克*",
"boost" : 1.0
}
}
},
{
"range" : {
"create_time" : {
"from" : "2017-09-07 00:00:00",
"to" : "2017-09-15 23:59:59",
"include_lower" : true,
"include_upper" : true,
"boost" : 1.0
}
}
}
],
"must_not" : [
{
"wildcard" : {
"title.keyword" : {
"wildcard" : "*蘋果梨*",
"boost" : 1.0
}
}
}
],
"should" : [
{
"wildcard" : {
"title.keyword" : {
"wildcard" : "*蘋果手機(jī)*",
"boost" : 1.0
}
}
},
{
"wildcard" : {
"title.keyword" : {
"wildcard" : "*iphoneX*",
"boost" : 1.0
}
}
}
],
"disable_coord" : false,
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"_source" : {
"includes" : [
"title",
"content"
],
"excludes" : [ ]
},
"highlight" : {
"pre_tags" : [
"<span style=\"color:red\">"
],
"post_tags" : [
"</span>"
],
"fragment_size" : 100,
"number_of_fragments" : 5,
"require_field_match" : true,
"fields" : {
"title" : { }
}
}
}
Elasticsearch檢索中的精確匹配、全文檢索分為很多種,需要結(jié)合開發(fā)需求進(jìn)行因地制宜的使用。
看完上述內(nèi)容,你們對(duì)Elasticsearch實(shí)現(xiàn)類Google高級(jí)檢索的實(shí)例分析有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。