国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

使用ElasticSearch 怎么實(shí)現全文搜索

發(fā)布時(shí)間:2021-07-27 11:45 來(lái)源:億速云 閱讀:0 作者:Leah 欄目: 編程語(yǔ)言 歡迎投稿:712375056

使用ElasticSearch 怎么實(shí)現全文搜索,相信很多沒(méi)有經(jīng)驗的人對此束手無(wú)策,為此本文總結了問(wèn)題出現的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。


match query 會(huì )對查詢(xún)語(yǔ)句進(jìn)行分詞,分詞后,如果查詢(xún)語(yǔ)句中的任何一個(gè)詞項被匹配,則文檔就會(huì )被索引到。

GET books/_search
{
  "query": {
    "match": {
      "name": "美術(shù)計算機"
    }
  }
}
 

這個(gè)查詢(xún)首先會(huì )對 美術(shù)計算機 進(jìn)行分詞,分詞之后,再去查詢(xún),只要文檔中包含一個(gè)分詞結果,就回返回文檔。換句話(huà)說(shuō),默認詞項之間是 OR 的關(guān)系,如果想要修改,也可以改為 AND。

GET books/_search
{
  "query": {
    "match": {
      "name": {
        "query": "美術(shù)計算機",
        "operator": "and"
      }
    }
  }
}
 

此時(shí)就回要求文檔中必須同時(shí)包含 美術(shù)計算機 兩個(gè)詞。

 

15.2 match_phrase query

match_phrase query 也會(huì )對查詢(xún)的關(guān)鍵字進(jìn)行分詞,但是它分詞后有兩個(gè)特點(diǎn):

  • 分詞后的詞項順序必須和文檔中詞項的順序一致
  • 所有的詞都必須出現在文檔中

示例如下:

GET books/_search
{
  "query": {
    "match_phrase": {
        "name": {
          "query": "十一五計算機",
          "slop": 7
        }
    }
  }
}
 

query 是查詢(xún)的關(guān)鍵字,會(huì )被分詞器進(jìn)行分解,分解之后去倒排索引中進(jìn)行匹配。

slop 是指關(guān)鍵字之間的最小距離,但是注意不是關(guān)鍵之間間隔的字數。文檔中的字段被分詞器解析之后,解析出來(lái)的詞項都包含一個(gè) position 字段表示詞項的位置,查詢(xún)短語(yǔ)分詞之后 的 position 之間的間隔要滿(mǎn)足 slop 的要求。

 

15.3 match_phrase_prefix query

這個(gè)類(lèi)似于 match_phrase query,只不過(guò)這里多了一個(gè)通配符,match_phrase_prefix 支持最后一個(gè)詞項的前綴匹配,但是由于這種匹配方式效率較低,因此大家作為了解即可。

GET books/_search
{
  "query": {
    "match_phrase_prefix": {
      "name": "計"
    }
  }
}
 

這個(gè)查詢(xún)過(guò)程,會(huì )自動(dòng)進(jìn)行單詞匹配,會(huì )自動(dòng)查找以開(kāi)始的單詞,默認是 50 個(gè),可以自己控制:

GET books/_search
{
  "query": {
    "match_phrase_prefix": {
      "name": {
        "query": "計",
        "max_expansions": 3
      }
    }
  }
}
 

match_phrase_prefix 是針對分片級別的查詢(xún),假設 max_expansions 為 1,可能返回多個(gè)文檔,但是只有一個(gè)詞,這是我們預期的結果。有的時(shí)候實(shí)際返回結果和我們預期結果并不一致,原因在于這個(gè)查詢(xún)是分片級別的,不同的分片確實(shí)只返回了一個(gè)詞,但是結果可能來(lái)自不同的分片,所以最終會(huì )看到多個(gè)詞。

 

15.4 multi_match query

match 查詢(xún)的升級版,可以指定多個(gè)查詢(xún)域:

GET books/_search
{
  "query": {
    "multi_match": {
      "query": "java",
      "fields": ["name","info"]
    }
  }
}
 

這種查詢(xún)方式還可以指定字段的權重:

GET books/_search
{
  "query": {
    "multi_match": {
      "query": "陽(yáng)光",
      "fields": ["name^4","info"]
    }
  }
}
 

這個(gè)表示關(guān)鍵字出現在 name 中的權重是出現在 info 中權重的 4 倍。

 

15.5 query_string query

query_string 是一種緊密結合 Lucene 的查詢(xún)方式,在一個(gè)查詢(xún)語(yǔ)句中可以用到 Lucene 的一些查詢(xún)語(yǔ)法:

GET books/_search
{
  "query": {
    "query_string": {
      "default_field": "name",
      "query": "(十一五) AND (計算機)"
    }
  }
}
   

15.6 simple_query_string

這個(gè)是 query_string 的升級,可以直接使用 +、|、- 代替 AND、OR、NOT 等。

GET books/_search
{
  "query": {
    "simple_query_string": {
      "fields": ["name"],
      "query": "(十一五) + (計算機)"
    }
  }
}
 


免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

美女裸体18禁网站免费看图片| 久久久亚洲欧洲日产国码αv| 内射人妻无码色AV无码| 熟妇熟女乱妇乱女网站| 久久久久久久女国产乱让韩| 国产在线 | 日韩|