濮阳杆衣贸易有限公司

主頁 > 知識庫 > Elasticsearch屬性單詞常用解析說明

Elasticsearch屬性單詞常用解析說明

熱門標簽:上海400客服電話怎么申請 滄州電銷外呼系統(tǒng)價格 合肥ai電銷機器人費用 400電話個人能不能辦理 天津電銷外呼系統(tǒng)違法嗎 手機外呼系統(tǒng)什么原理 銀行信貸電話機器人 溫州外呼系統(tǒng)招商 凱立德地鐵站地圖標注

一、前言

      說實話,剛測試ES的時候,我的內(nèi)心是崩潰的,好多單詞都不知道代表什么意思,只能一邊測試,一邊查詢??吹骄挖s緊記下來,一天下來,也算是學的七七八八吧。這里分享給大家。

二、ES常見單詞解釋

1、url請求中的參數(shù):

curl -XPOST 'localhost:9200/bank/type1/_search?pretty' -d '
{
"query": { "match_all": {} }
}'
(1)9200后面的bank是索引名字
(2)type1代表es的type,類似于傳統(tǒng)數(shù)據(jù)庫的table
(3)pretty:pretty是將返回的信息以可讀的JSON形式返回

2、_source字段:

      這個字段代表是否存儲在原始文檔。如果設置為true,那么查詢之后,會在hits.hits里面有個_source數(shù)組,展示原始文檔。
_source可以限制存儲部分字段,或者不存儲部分字段,形如:

 "yourtype":{
   		 "_source":{
       		 "includes":["field1","field2"]   //這兩個字段會存儲在原始文檔
  		  },
   		 "properties": {
      		  ... 
   		 }
	}
 "yourtype":{
   		 "_source":{
       		 "excludes":["field1","field2"]  //這兩個字段不會存儲在原始文檔
  		  },
   		 "properties": {
      		  ... 
   		 }
	}

3、_all的配置:

      這個屬性的配置方法和_source類似,它是把一個文檔里面的所有信息都放到一起組合成一個大字段。我們可以設置這個字段包含所有的字段,也可以設置只包含幾個字段,或者是只存儲幾個字段

(1)包含所有字段

"yourtype": {
 	 "_all": {
     	"enabled": true  //這樣設置的話,就包含了所有的字段
 	 },}

(2)包含或者不包含部分字段

 "yourtype": {
      "properties": {
         "field1": {
             "type": "string",
             "include_in_all": false   //這個字段不包含在_all
          },
          "field2": {
             "type": "string",
             "include_in_all": true  //這個字段包含在_all
          }
      }
   }

4、highlight 高亮顯示:

這個字段類似于咱們百度的時候,符合預期文字的部分都會高亮顯示出紅色來

(1)可以在查詢時指定高亮字段或者全部高亮

 "query": {
  		"match": {
    		 "_all": "中國人"
		  }
  },
	"highlight": {
 		 "fields": {
     		//"_all": {}    //這是對_all字段進行高亮查詢
	//"title": {}  //這是對title字段進行高亮顯示
	  }
  }

5、設置字段的index屬性。

這個屬性是控制該字段是否生成倒排索引,取值主要有三個:

(1)analyzed:字段被索引,會做分詞,可搜索。反過來,如果需要根據(jù)某個字段進搜索,index屬性就應該設置為analyzed。
(2)not_analyzed:字段值不分詞,會被原樣寫入索引。反過來,如果某些字段需要完全匹配,比如人名、地名,index屬性設置為not_analyzed為佳。
(3)no:字段不寫入索引,當然也就不能搜索。反過來,有些業(yè)務要求某些字段不能被搜索,那么index屬性設置為no即可。

類似于:

(1)analyzed:字段被索引,會做分詞,可搜索。反過來,如果需要根據(jù)某個字段進搜索,index屬性就應該設置為analyzed。
(2)not_analyzed:字段值不分詞,會被原樣寫入索引。反過來,如果某些字段需要完全匹配,比如人名、地名,index屬性設置為not_analyzed為佳。
(3)no:字段不寫入索引,當然也就不能搜索。反過來,有些業(yè)務要求某些字段不能被搜索,那么index屬性設置為no即可。

6、store屬性:

用于指定是否將原始字段寫入索引,默認取值為no。

      因為在Lucene中,高亮功能和store屬性是否存儲息息相關,因為需要根據(jù)偏移位置到原始文檔中找到關鍵字才能加上高亮的片段。在Elasticsearch,因為_source中已經(jīng)存儲了一份原始文檔,可以根據(jù)_source中的原始文檔實現(xiàn)高亮,在索引中再存儲原始文檔就多余了,所以Elasticsearch默認是把store屬性設置為no。
注意: 如果想要對某個字段實現(xiàn)高亮功能,_source和store至少保留一個。

參考:https://blog.csdn.net/mlljava1111/article/details/70598481

7、took :該請求花了多少毫秒 (took)

8、_shards:

      描述了查詢分片的信息,查詢了多少個分片、成功的分片數(shù)量、失敗的分片數(shù)量等猜測這個字段代表該次查詢,獲取數(shù)據(jù)經(jīng)過的分片數(shù)量之和

9、hits:

搜索的結(jié)果,total是全部的滿足的文檔數(shù)目,hits是返回的實際數(shù)目(默認是10)

10、max_score和_score :

代表的是查詢結(jié)果的評分值,分越高,代表權(quán)重越大,排名越靠前。具體的參考:

https://blog.csdn.net/paditang/article/details/79098830

有的時候我們可能對分數(shù)不感興趣,就可以使用filter進行過濾,它不會去計算分值,因此效率也就更高一些

11、Routing:Elasticsearch的路由機制

      我們可以通過制定路由,而避免ES自己進行大量的廣播操作。直接按照我們制定的路由找到對應的分片查詢,關于路由機制,我們不做贅述,只是了解下就行。

具體請參考:https://blog.csdn.net/cnweike/article/details/38531997

12、term和trems:

這兩個是精準查找,一個是單數(shù),一次查找單個值。一個是復數(shù),一次查找多個值。

例如:"terms" : {
    	"price" : [20, 30]
	}

13、先看個語句:

	GET _search
{
  "query": {
    "filtered": {
      "query": {
        "match": {
          "text": "quick brown fox"
        }
      },
      "filter": {
        "term": {
          "status": "published"
        }
      }
    }
  }
}

(1) 這里的"filtered": 從ES5.0之后被移除了。

(2) filter代表過濾匹配,也是為了過濾status字段,讓它不去計算的分數(shù),不用計算權(quán)重等。

新的語句為:

GET _search
{
  "query": {
    "bool": {
      "must": {
        "match": {
          "text": "quick brown fox"
        }
      },
      "filter": {
        "term": {
          "status": "published"
        }
      }
    }
  }
}

(3) bool代表的是bool查詢,參數(shù)主要有:

must
所有的語句都 必須(must) 匹配,與 AND 等價。
must_not
所有的語句都 不能(must not) 匹配,與 NOT 等價。
should
至少有一個語句要匹配,與 OR 等價

到此這篇關于Elasticsearch屬性單詞常用解析說明的文章就介紹到這了,更多相關Elasticsearch屬性單詞解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Java使用elasticsearch基礎API使用案例講解
  • Django對接elasticsearch實現(xiàn)全文檢索的示例代碼
  • 解決Elasticsearch因jdk版本問題啟動失敗的問題
  • spring-data-elasticsearch @Field注解無效的完美解決方案
  • Elasticsearch中store field與non-store field的區(qū)別說明
  • Elasticsearch 映射參數(shù)詳解 fields
  • 基于ElasticSearch Analyzer的使用規(guī)則詳解
  • Java elasticSearch-api的具體操作步驟講解

標簽:白城 洛陽 金華 七臺河 怒江 酒泉 赤峰 溫州

巨人網(wǎng)絡通訊聲明:本文標題《Elasticsearch屬性單詞常用解析說明》,本文關鍵詞  Elasticsearch,屬性,單詞,常用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《Elasticsearch屬性單詞常用解析說明》相關的同類信息!
  • 本頁收集關于Elasticsearch屬性單詞常用解析說明的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    安福县| 库伦旗| 衡水市| 福鼎市| 汝南县| 仁怀市| 长沙市| 海城市| 慈溪市| 休宁县| 内乡县| 靖宇县| 日喀则市| 沅江市| 工布江达县| 宣武区| 山阴县| 武义县| 沙洋县| 扶余县| 尼玛县| 湟中县| 奉化市| 永年县| 永胜县| 海门市| 甘泉县| 谷城县| 景谷| 蚌埠市| 绥江县| 新民市| 正安县| 莱州市| 武宣县| 乌苏市| 海兴县| 江都市| 伊宁县| 财经| 阿城市|