Elasticsearch中text與keyword的區別



text類型

1:支持分詞,全文檢索,支持模糊、精確查詢,不支持聚合,排序操作;
2:text類型的最大支持的字符長度無限制,適合大字段存儲;
使用場景:
    存儲全文搜索數據, 例如: 郵箱內容、地址、代碼塊、博客文章內容等。
    默認結合standard analyzer(標准解析器)對文本進行分詞、倒排索引。
    默認結合標准分析器進行詞命中、詞頻相關度打分。

keyword

1:不進行分詞,直接索引,支持模糊、支持精確匹配,支持聚合、排序操作。
2:keyword類型的最大支持的長度為——32766個UTF-8類型的字符,可以通過設置ignore_above指定自持字符長度,超過給定長度后的數據將不被索引,無法通過term精確匹配檢索返回結果。

使用場景:
存儲郵箱號碼、url、name、title,手機號碼、主機名、狀態碼、郵政編碼、標簽、年齡、性別等數據。
用於篩選數據(例如: select * from x where status='open')、排序、聚合(統計)。
直接將完整的文本保存到倒排索引中。

Dynamic

dynamic屬性:默認值為true,允許動態地向文檔類型中加入新的字段。推薦設置為false,禁止向文檔中添加字段,這樣,文檔類型的所有字段必須在索引映射的properties屬性中顯式定義,在properties字段中未定義的字段都將會ElasticSearch忽略。
dynamic設置為ture:默認值,新增加的字段被添加到索引映射中;
dynamic設置為false:新增加的字段會被忽略;
dynamic設置為strict:當向文檔中新增字段時,ElasticSearch引擎拋出異常;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM