ElasticSearch 學習2 查詢詳解

2021-10-16 22:59:11 字數 3234 閱讀 7850

1.3 full text query

1.4 復合查詢

1.5 其他

2、通用引數

3、聚合

get book/_search

}}

根據詞去查詢,查詢指定欄位中包含給定單詞的文件,term 查詢的輸入不被解析,只有搜尋的詞和文件中的詞項精確匹配,才會返回文件。應用場景如:人名、地名等等。不適用於全文檢索字段。

例如:一本書名叫 :搜尋基本操作。如果搜「基本操作」,因為輸入橫跨兩個詞項(基本、操作),es 內部並沒有乙個詞項叫「基本操作」,所以沒有結果。

可選屬性:

get book/_search}}

}}}}

}

判斷字段是否有值

}}

可選引數:

}}

}

如果search.allow_expensive_queries 設定為false,則不會執行模糊查詢。

根據編輯距離來構建相似的值來進行模糊匹配。

可選引數:

}}

}

如果search.allow_expensive_queries 設定為false,則不會執行模糊查詢。

}}

}

如果search.allow_expensive_queries 設定為false,則不會執行模糊查詢。

萬用字元查詢,支援 * ? ,避免以萬用字元開頭,會降低效能。

}}

}

match query 會對查詢語句進行分詞,分詞後,預設為 or 關係,如果查詢語句中的任何乙個詞項被匹配,則文件就會被索引到。可以手動覆蓋為 and

get book/_search}}

}

可以指定多個查詢域,field 中還可以指定權重

get book5/_search

}}

可選引數:

}}

,"filter":}

,"must_not":}

},"should":[

},}]

,"minimum_should_match":1

,"boost"

:1.0}}

}

預設分數計算將各匹配項相加,dismax 只將最佳匹配的評分作為查詢的評分。

可選引數:

},

}],"tie_breaker"

:0.7}}

}

將 filter 包裹起來給定乙個指定分數。

},

"boost"

:1.2}}

}

可以用 negative 降低分數

},

"negative":}

,"negative_boost"

:0.5}}

}

使用場景:需要根據某些字段(熱度、評分)來影響分數高低

假設有如下對映

}}

}

搜尋引數如下

}]

,"should":[

}]}}

}

例如 join query,span query,geo query,shape query 以及一些特殊查詢。

}}

from 和 size 對應於 solr 的 start ,rows

},

"from":1

,"size":1

}

_source 對應於 solr 的 fl

},

"from":1

,"size":1

,"_source":[

"title"

]}

「min_score」 ,只有分數高於指定值才會返回。

highlight ,同 solr。通常不需要複雜的額外配置,對高亮部分有特殊需要可另外設定。

},

"_source":[

"title"],

"highlight":}

}}

按照指定欄位做合併,並可設定每個結果下返回多少個文件。類似於聚合。被合併的字段必須是keyword or numeric field with doc_values activated。最多支援兩層合併。

},

"collapse":]

}}}

普通 filter 會影響查詢結果和聚合結果。

post filter 是在聚合之後再過濾,所以不會影響聚合結果,只影響查詢結果。

}}

},"aggs":}

,"color_red":}

,"aggs":}

}}},

"post_filter":}

}

通過對字段的計算得出的聚合

}}

}

最常用的一種,按照指定欄位的值分桶。聚合內還可以巢狀指標聚合。

可選引數:

},

"aggs":,

"aggs":}

}}}}

用過濾器分桶,支援多個 filter。可以給桶命名,也可匿名,返回的桶順序和輸入的 filter 順序相同。

命名桶:

},

"aggs":}

,"name2":}

}}}}

}

匿名桶:

},

"aggs":}

,}]}

}}}

按範圍分桶,左閉右開區間。可以給桶命名。

},

"aggs":,

,]}}

}}

elasticsearch學習入門

由於es更新很快,本文這類快餐式的記錄僅供參考 es的官網有比較全面的api,但我看過以後感覺api的層次還是有點亂,至少沒有mongodb的文件那麼簡單易讀。從簡單的應用開始慢慢認識es的。比如要搭建個中文新聞資訊的搜尋引擎,新聞有 標題 內容 作者 型別 發布時間 這五個字段 我們要提供 標題和...

elasticsearch 入門學習

原文 1 思考 大規模資料如何檢索 當系統資料量上了10億 100億條的時候,我們在做系統架構的時候通常會從以下角度去考慮問題 2 傳統資料庫的應對解決方案 對於關係型資料,我們通常採用以下或類似架構去解決查詢瓶頸和寫瓶頸 3 非關係型資料庫的解決方案 對於nosql資料庫,以mongdb為例,其它...

Elasticsearch 學習筆記

參考 關係型資料庫 elasticsearch 資料庫database索引index,支援全文檢索 表table型別type 資料行row文件document,但不需要固定結構,不同文件可以具有不同字段集合 資料列column字段field 模式schema 索引字段型別numeric dataty...