溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Elasticsearch實(shí)現(xiàn)類Google高級(jí)檢索的實(shí)例分析

發(fā)布時(shí)間:2021-12-09 16:27:39 來源:億速云 閱讀:190 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)Elasticsearch實(shí)現(xiàn)類Google高級(jí)檢索的實(shí)例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、高級(jí)檢索的功能點(diǎn)

通過高級(jí)搜索配置搜索項(xiàng),能更準(zhǔn)確的過濾掉不相干信息,獲取最想要的檢索信息。 
以Google搜索為例(截取核心片段): 
Elasticsearch實(shí)現(xiàn)類Google高級(jí)檢索的實(shí)例分析

二、高級(jí)檢索拆分

1、包含以下全部的關(guān)鍵詞:

需要分詞處理; 
若需要指定字段,則使用matchQuery實(shí)現(xiàn); 
若無需指定字段的全文檢索,則使用queryStringQuery實(shí)現(xiàn);

2、包含以下的完整關(guān)鍵詞 :

需要完整匹配字符,使用wildcardQuery結(jié)合”*”實(shí)現(xiàn);

3、包含以下任意一個(gè)關(guān)鍵詞 :

空格分隔每個(gè)關(guān)鍵詞,需要將多個(gè)詞空格拆分,然后對(duì)每個(gè)關(guān)鍵詞通過should結(jié)合wildcardQuery遍歷實(shí)現(xiàn);

4、不包括以下關(guān)鍵詞 :

包含以下全部關(guān)鍵詞的反面, 
若需要指定字段,則使用must_not結(jié)合matchQuery實(shí)現(xiàn); 
若無需指定字段,則使用must_not結(jié)合queryStringQuery實(shí)現(xiàn);

5、限定要搜索的網(wǎng)頁的時(shí)間是:

限定搜索的開始和結(jié)束時(shí)間,通過rangeQuery實(shí)現(xiàn)。

6、關(guā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)。

三、DSL高級(jí)檢索實(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實(shí)現(xiàn)類Google高級(jí)檢索的實(shí)例分析

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è)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(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)容。

AI