ElasticSearch如何設(shè)置某個字段不分詞淺析
先說結(jié)論:字段類型更改為 'keyword'
elasticSearch官方文檔中創(chuàng)建index代碼如下
PUT /my_store { "mappings" : { "products" : { "properties" : { "productID" : { "type" : "string", "index" : "not_analyzed" } } } } }
由于es官方文檔版本基于2.x編寫,而本人安裝版本為6.6 在執(zhí)行如上代碼過程中出現(xiàn)如下錯誤
No handler for type [string] declared on field [productID]
這里報錯是因為ElasticSearch5.x以上版本沒有string類型了,換成了text和keyword作為字符串類型。
字符串 - text:用于全文索引,該類型的字段將通過分詞器進行分詞,最終用于構(gòu)建索引
字符串 - keyword:不分詞,只能搜索該字段的完整的值,只用于 filtering
此時我們將文檔中代碼更改為如下
PUT /my_store { "mappings" : { "products" : { "properties" : { "productID" : { "type" : "keyword", "index": true } } } } }
創(chuàng)建成功,此時我們進行查詢試試看
GET /my_store/products/_search { "query" : { "constant_score" : { "filter" : { "term" : { "productID" : "XHDK-A-1293-#fJ3" } } } } }
總結(jié)
到此這篇關(guān)于ElasticSearch如何設(shè)置某個字段不分詞的文章就介紹到這了,更多相關(guān)ElasticSearch設(shè)置字段不分詞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何利用 Either 和 Option 進行函數(shù)式錯誤處理
這篇文章主要介紹了如何利用 Either 和 Option 進行函數(shù)式錯誤處理。在 Java 中,錯誤的處理在傳統(tǒng)上由異常以及創(chuàng)建和傳播異常的語言支持進行。但是,如果不存在結(jié)構(gòu)化異常處理又如何呢?,需要的朋友可以參考下2019-06-06SpringCloud+RocketMQ實現(xiàn)分布式事務(wù)的實踐
分布式事務(wù)已經(jīng)成為了我們的經(jīng)常使用的。所以我們來一步一步的實現(xiàn)基于RocketMQ的分布式事務(wù)。感興趣的可以了解一下2021-10-10微服務(wù)Spring?Boot?整合Redis?阻塞隊列實現(xiàn)異步秒殺下單思路詳解
這篇文章主要介紹了微服務(wù)Spring?Boot?整合Redis?阻塞隊列實現(xiàn)異步秒殺下單,使用阻塞隊列實現(xiàn)秒殺的優(yōu)化,采用異步秒殺完成下單的優(yōu)化,本文給大家分享詳細步驟及實現(xiàn)思路,需要的朋友可以參考下2022-10-10