ElasticSearch 系列文章
1 ES 入門之一 安裝ElasticSearcha
2 ES 記錄之如何創建一個索引映射
3 ElasticSearch 學習記錄之Text keyword 兩種基本類型區別
4 ES 入門記錄之 match和term查詢的區別
5 ElasticSearch 學習記錄之ES幾種常見的聚合操作
6 ElasticSearch 學習記錄之父子結構的查詢
7 ElasticSearch 學習記錄之ES查詢添加排序字段和使用missing或existing字段查詢
8 ElasticSearch 學習記錄之ES高亮搜索
9 ElasticSearch 學習記錄之ES短語匹配基本用法
10 ElasticSearch 學習記錄之 分布式文檔存儲往ES中存數據和取數據的原理
11 ElasticSearch 學習記錄之集群分片內部原理
12 ElasticSearch 學習記錄之ES如何操作Lucene段
13 ElasticSearch 學習記錄之如任何設計可擴容的索引結構
14 ElasticSearch之 控制相關度原理講解
match和term查詢的區別
match
- match的查詢詞會被分詞
- match_phrase 不會分詞
- match_phrase 可對多個字段進行匹配
term
- term代表完全匹配,不進行分詞器分析
- term 查詢的字段需要在mapping的時候定義好,否則可能詞被分詞。傳入指定的字符串,查不到數據
bool聯合查詢
- must should must_not
- must 完全匹配
- should 至少滿足一個
- must_not不匹配
舉個栗子
{
"query": {
"bool": {
"must": {
"term": {
"content": "寶馬"
}
},
"must_not": {
"term": {
"tags": "寶馬"
}
}
}
}
}
一個簡單的查詢
POST product/_search
{
"size": 20,
"query": {
"bool": {
"must": [
{
"term": {
"attribute": {
"value": "13"
}
}
},
{
"match": {
"departureCitys": "上海"
}
}
]
}
}
}
