国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

es8 text類型使用term精確查詢失效

這篇具有很好參考價值的文章主要介紹了es8 text類型使用term精確查詢失效。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題:

在使用term精確查詢text 類型時,比如phone 手機號數(shù)值時可以查詢到,使用nickname 這種text 查詢不到。

我的mapping 是這樣的

es8 text類型使用term精確查詢失效

?

es8 text類型使用term精確查詢失效

?

解決:

1.通過es提供的測試分詞的接口,我們可以測試各字段的分詞情況

get http:/ip/索引名稱/_analyze
 
{
"field":"firtname", #要進行分析的索引中的字段
"text":"DNF" #要進行分析的文本內(nèi)容
}

es8 text類型使用term精確查詢失效

分別分詞為’北‘,京,大,學,并沒有我想要的整體的一塊的分詞 “北京大學”。

2.ES 字段類型keyword和text的區(qū)別和選擇

keyword:存儲數(shù)據(jù)時候,不會分詞建立索引
 
text:存儲數(shù)據(jù)時候,會自動分詞,并生成索引

創(chuàng)建es索引是最好先設置好每個字段的類型和使用的分詞索引,如果不需要分詞查詢,設置字段類型為keyword最好,例如商品id、編號之類的;

如果需要分詞查詢,就設置為text類型,并且指定分詞器,例如商品名稱、商品標簽、關鍵字等等;

設置字段類型和使用的分詞器:

"fieldName": {
? ?"type": "text", #字段類型為text
? ?"analyzer":"ik_max_word" #ik中文分詞器
}

注意:設置字段類型為text后,es建立的分詞索引會把大寫字母轉換為小寫,通過term精確匹配就匹配不到

結果:

后面我試著為content添加附屬字段keyword,希望能夠借此達到目的:

es8 text類型使用term精確查詢失效

  $where = [
                /*"term" => [ //根據(jù)詞條精確值查詢
                    "_id" => ["value" => "42"]
                ]*/
                /*"range" => [
                    "birthday" => [
                        "gte" => '1989-03-31',  // 這里的gte代表大于等于,gt則代表大于
                        "lte" => '2095-03-31'  // lte代表小于等于,lt則代表小于
                    ]
                ]*/
                /*"match" => [ //單字段查詢
                    "nickname" => "藍紅白"
                ],*/
                'bool' => [
                    'should' => [
//                        ["term" => ["_id" => '42']], //可以查詢到
//                        ["term" => ["id" => '7']],//可以查詢到
//                        ["term" => ["phone" => '18235555501']],//可以查詢到
//                        ["term" => ["school_name" => '北京大學']],// 查不到
                        ["term" => ["school_name.keyword" => '北京大']],//可以查詢到
                        ["term" => ["nickname.keyword" => '小白']],//可以查詢到
                    ]
                ]
            ];

?["term" => ["school_name.keyword" => '北京大']], 必須為“北京大學”,多一字少一字都匹配不到這就是精確匹配。

總結:

  1. 布爾查詢: must:必須匹配每個子查詢,類似“與”; ?should:選擇性匹配子查詢,類似“或”; ?must_not:必須不匹配,不參與算分,類似“非”; ?filter:必須匹配,不參與算分
  2. ?bool.must:適用于精確查詢,并且如果使用多個term的話不能適用于同一個字段,多值而適用于多個字段
  3. match:根據(jù)一個字段查詢,在匹配時會對所查找的關鍵詞進行分詞,然后按分詞匹配查找,而term會直接對關鍵詞進行查找。一般模糊查找的時候,多用match,而精確查找時可以使用term。
  4. multi_match: 提供在多個字段上查詢,搜索字段越多,對查詢性能影響越大,因此建議采用copy_to,然后單字段查詢的方式
  5. erm結合bool使用時:should是或,must是與,must_not是非
  6. term:精準查詢,根據(jù)詞條精確值查詢,keyword、數(shù)值類型、布爾類型、日期類型字段; range:根據(jù)值的范圍查詢,可以是數(shù)值、日期的范圍
  7. geo_bounding_box:矩形范圍查詢,查詢坐標落在某個矩形范圍的所有文檔,查詢時,需要指定矩形的左上、右下兩個點的坐標,然后畫出一個矩形,落在該矩形內(nèi)的都是符合條件的點。
  8. geo_distance:附近查詢,也叫做距離查詢,查詢到指定中心點小于某個距離值的所有文檔。在地圖上找一個點作為圓心,以指定距離為半徑,畫一個圓,落在圓內(nèi)的坐標都算符合條件

?https://blog.csdn.net/xcdsdf14545/article/details/106189972/
https://blog.csdn.net/Muscleheng/article/details/115380374文章來源地址http://www.zghlxwxcb.cn/news/detail-410784.html

到了這里,關于es8 text類型使用term精確查詢失效的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ES中如何對text字段進行精確匹配

    在實際使用ES過程中,經(jīng)常會遇到這樣的問題: 既需要對一個字段進行全文檢索,又要對該字段進行等值查詢。 我們知道全文檢索的字段類型需要設置為text,但是text字段類型又不支持term等值查詢。那么怎么解決這個問題呢? 答案是 通過fields進行多字段配置 為了不同的目的

    2024年02月06日
    瀏覽(17)
  • es筆記五之term-level的查詢操作

    es筆記五之term-level的查詢操作

    本文首發(fā)于公眾號:Hunter后端 原文鏈接:es筆記五之term-level的查詢操作 官方文檔上寫的是 term-level queries,表義為基于準確值的對文檔的查詢,可以理解為對 keyword 類型或者 text 類型分詞為 keyword 的字段進行 term 形式的精確查找。 以下是本篇筆記目錄: 是否存在值 前綴搜索

    2024年02月06日
    瀏覽(29)
  • 如何使用ES做簡單的時間條件過濾+模糊查詢+精確匹配+關鍵字排除,查詢 elasticsearch查詢結果包含或排除某些字段、_source查詢出需要的屬性名稱

    目錄 一、時間條件過濾+模糊查詢+精確匹配+排除 1. 查詢出包含 log_geo 的數(shù)據(jù) “wildcard”: { “message”: “l(fā)og_geo” } 2. 查詢某個時間段的數(shù)據(jù) 3. 條件查詢與條件排除數(shù)據(jù) 4. from 表示起始的記錄的ID 5. size 表示顯示的記錄數(shù) 6.sort排序 desc降序、asc升序? 7.should查詢在mysql中

    2024年01月18日
    瀏覽(23)
  • 【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序實例,ES倒排索引介紹

    【Elasticsearch】ES精確查詢和范圍查詢,ES時間字段排序實例,ES倒排索引介紹

    termQuery matchQuery 模糊查詢 multiMatchQuery 多個字段模糊查詢 如果時間字段寫入時用的類型是Text,可以用“時間字段.keyword”來處理 #查詢前傳入分頁參數(shù) #分頁后拿到總記錄數(shù) 把文檔D對應到的映射轉換為到文檔ID的映射,每個都對應著一系列的文檔,這些文

    2024年02月15日
    瀏覽(126)
  • 【ES】es查詢term、match、match_phrase、mast_not、mast...

    keyword:不分詞 非keyword:分詞 對屬性名.keyword,就是全值匹配。如果查詢的屬性是text,就會匹配分詞。 term:查詢的入?yún)?,不會分詞。 terms:查詢的入?yún)ⅲ粫衷~。 match:分詞匹配 match_phrase:短語匹配,一個slop屬性,可以使短語中的詞,調換順序 match_phrase_prefix:分詞前綴

    2024年02月22日
    瀏覽(19)
  • es筆記三之term,match,match_phrase 等查詢方法介紹

    es筆記三之term,match,match_phrase 等查詢方法介紹

    本文首發(fā)于公眾號:Hunter后端 原文鏈接:es筆記三之term,match,match_phrase 等查詢方法介紹 首先介紹一下在 es 里有兩種存儲字符串的字段類型,一個是 keyword,一個是 text。 keyword 在存儲數(shù)據(jù)的時候是作為一個整體存儲的,不會對其進行分詞處理 text 存儲數(shù)據(jù)的時候會對字符串

    2024年02月05日
    瀏覽(23)
  • ES查詢問題- Fielddata is disabled n text fields by default. Set fielddata=true on [XXXX]

    1、重點信息提煉 ???????? Fielddata is disabled n text fields by default. Set fielddata=true on [shopOperatorTime] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead 2、關于fielddata=true 這個參數(shù)可以在百度上面查看到對

    2024年02月13日
    瀏覽(20)
  • 【ES筆記02】ElasticSearch數(shù)據(jù)庫之查詢操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)

    【ES筆記02】ElasticSearch數(shù)據(jù)庫之查詢操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)

    這篇文章,主要介紹ElasticSearch數(shù)據(jù)庫之查詢操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)。 目錄 一、布爾查詢 1.1、主鍵查詢 1.2、兩種查詢方式 (1)路徑參數(shù)查詢 (2)請求體參數(shù)查詢 1.3、match查詢 (1)match (2)match_all 1.4、過濾字段 1.5、布

    2023年04月09日
    瀏覽(88)
  • 第七章-分布式搜索引擎-ES:全文查詢、分詞查詢、精確查詢、地理坐標查詢、組合查詢(bool、funtion_score)以及RestApi

    第七章-分布式搜索引擎-ES:全文查詢、分詞查詢、精確查詢、地理坐標查詢、組合查詢(bool、funtion_score)以及RestApi

    DSL查詢分類 全文查詢、分詞查詢、非分詞查詢、地理坐標查詢、組合查詢 match_all 查詢所有,不需要查詢條件,固定寫法_search 第一個hits就是命中的數(shù)據(jù)?,total就是條數(shù),第二個hits是source嘞 ? 全文檢索查詢 我們不要整多個字段查詢,參與的字段越多,查詢速度越慢,如果有

    2024年01月16日
    瀏覽(33)
  • ElasticSearch第二章(ES8.X的使用)

    ElasticSearch第二章(ES8.X的使用)

    目錄 1:ES的使用(DSL創(chuàng)建索引庫-相當于表) 1.1:什么是索引庫 1.2:索引庫的增刪改查使用 2:ES的使用(DSL操作文檔-相當于數(shù)據(jù)) 2.1:什么是文檔 2.2:文檔的增刪改查 3:java代碼開發(fā) 3.1:準備工作 3.2:代碼操作索引(也就是表的增刪改查) 3.3:代碼操作文檔(也就是數(shù)

    2024年03月23日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包