天天看點

elasticsearch模糊比對查詢

  • ​​處理人類語言​​
  • ​​開始處理各種語言​​
  • ​​詞彙識别​​
  • ​​歸一化詞元​​
  • ​​将單詞還原為詞根​​
  • ​​停用詞: 性能與精度​​
  • ​​同義詞​​
  • ​​拼寫錯誤​​
  • ​​模糊性​​
  • ​​模糊查詢​​
  • ​​模糊比對查詢​​
  • ​​模糊性評分​​
  • ​​語音比對​​

模糊比對查詢

​match​

​ 查詢支援開箱即用的模糊比對:

GET /my_index/my_type/_search

{

"query": {

"match": {

"text": {

"query": "SURPRIZE ME!",

"fuzziness": "AUTO",

"operator": "and"

}

}

}

}

查詢字元串首先進行分析,會産生詞項 ​

​[surprize, me]​

​​ ,并且每個詞項根據指定的 ​

​fuzziness​

​ 進行模糊化。

同樣, ​

​multi_match​

​​ 查詢也支援 ​

​fuzziness​

​​ ,但隻有當執行查詢時類型是 ​

​best_fields​

​​ 或者 ​

​most_fields​

​ :

GET /my_index/my_type/_search

{

"query": {

"multi_match": {

"fields": [ "text", "title" ],

"query": "SURPRIZE ME!",

"fuzziness": "AUTO"

}

}

}

elasticsearch模糊比對查詢

通配符查詢

傳回包含比對通配符模式的術語的文檔。

通配符運算符是比對一個或多個字元的占位符。例如,​

​*​

​通配符運算符比對零個或多個字元。您可以将通配符運算符與其他字元組合以建立通配符模式。

示例請求

以下搜尋傳回​

​user.id​

​​字段包含以 開頭​

​ki​

​​和結尾的術語的文檔​

​y​

​​。這些比對條件可以包括​

​kiy​

​​, ​

​kity​

​​或​

​kimchy​

​。

GET /_search
{
  "query": {
    "wildcard": {
      "user.id": {
        "value": "ki*y",
        "boost": 1.0,
        "rewrite": "constant_score"
      }
    }
  }
}      

的頂級參數 ​

​wildcard​

​<field>​

(必需,對象)要搜尋的字段。

參數 ​

​<field>​

​value​

(必需,字元串)您希望在提供的 ​

​<field>​

​.

此參數支援兩個通配符運算符:

  • ​?​

    ​, 比對任何單個字元
  • ​*​

    ​, 可以比對零個或多個字元,包括空字元

避免以​

​*​

​​或開始模式​

​?​

​。這會增加查找比對項所需的疊代次數并降低搜尋性能。

​boost​

(可選,浮點數)用于減少或增加查詢​​相關性分數​​​的浮點數 。預設為​

​1.0​

​.

您可以使用該​

​boost​

​參數來調整包含兩個或更多查詢的搜尋的相關性分數。

Boost 值相對于 的預設值​

​1.0​

​​。​

​0​

​​和之間的提升值會 ​

​1.0​

​​降低相關性分數。大于 的值會​

​1.0​

​ 增加相關性分數。

​rewrite​

(可選,字元串)用于重寫查詢的方法。有關有效值和更多資訊,請參閱 ​​rewrite參數​​。

​case_insensitive​

​ [7.10.0]在 7.10.0 中添加。

(可選,布爾值)設定為 true 時,允許模式與索引字段值不區分大小寫比對。預設為 false,這意味着比對的區分大小寫取決于基礎字段的映射。

筆記

允許昂貴的查詢

繼續閱讀