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...