欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何解決ES查詢數(shù)據(jù)突然變?yōu)榭盏膯栴}

本篇內(nèi)容主要講解“如何解決ES查詢數(shù)據(jù)突然變?yōu)榭盏膯栴}”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何解決ES查詢數(shù)據(jù)突然變?yōu)榭盏膯栴}”吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供金寨網(wǎng)站建設(shè)、金寨做網(wǎng)站、金寨網(wǎng)站設(shè)計、金寨網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、金寨企業(yè)網(wǎng)站模板建站服務(wù),十多年金寨做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

基本環(huán)境

  • elasticsearch版本:6.3.1

  • 客戶端環(huán)境:kibana 6.3.4、Java8應(yīng)用程序模塊。 其中kibana主要用于數(shù)據(jù)查詢診斷和查閱日志,Java8為主要的客戶端,數(shù)據(jù)插入和查詢都是由Java實現(xiàn)的。

案例介紹

使用elasticsearch存儲訂單的主要信息,document內(nèi)的field,基本上是long或keyword,創(chuàng)建索引的order.json文件如下:

{
  "doc": {
	"properties": {
	  "id": {
		"type": "keyword",
		"index": true
	  },
	  "status": {
		"type": "byte",
		"index": true
	  },
	  "createTime": {
		"type": "long",
		"index": true
	  },
	  "uid": {
		"type": "long",
		"index": true
	  },
	  "payment": {
		"type": "keyword",
		"index": true
	  },
	  "commentStatus": {
		"type": "byte",
		"index": true
	  },
	  "refundStatus": {
		"type": "byte",
		"index": true
	  }
	}
  }
}

某天發(fā)現(xiàn)有個查詢功能(單獨使用payment字段查詢)沒有數(shù)據(jù)出來,最近未修改此部分代碼。對比研發(fā)環(huán)境,研發(fā)環(huán)境是正常的,同樣的代碼在測試環(huán)境下無數(shù)據(jù)返回。

問題定位

  • 程序中使用該字段用的是termQuery,如下:

QueryBuilders.termQuery("payment", req.getFilter().getOrder().getPayment())

在kibana上用命令診斷查詢數(shù)據(jù),同樣沒有結(jié)果返回,查詢命令如下:

GET /order/doc/_search
{
  "query": {
    "bool": {
      "must": [
        {"term": {
          "payment": "Alipay"
        }}
      ]
    }
  }
}
  • 查詢mapping信息,看是否為keyword:

GET /order/_mapping/doc

響應(yīng)返回(只展示payment字段):

{
  "order": {
    "mappings": {
      "doc": {
        "properties": {
          "payment": {
            "type": "text",
			"fields": {
			  "keyword": {
				"type": "keyword",
				"ignore_above": 256
			  }
			}
          }
        }
      }
    }
  }
}

問題原因

按照mapping返回結(jié)果來看,字段payment原定義的類型是keyword,現(xiàn)在變成text了,這個是payment字段使用termQuery查詢導(dǎo)致沒有數(shù)據(jù)的原因。

text與keyword的區(qū)別

keyword對保存的內(nèi)容不分詞,也不改變大小寫,原樣存儲,默認可索引。 text對內(nèi)容進行分詞,并且全部小寫存儲,同時會增加一個text.keyword字段,為keyword類型,超過256字符后不索引。

由于payment字段變成text了,原有的程序使用term查詢,用的"Alipay",而text存儲的是"alipay",所以查不到數(shù)據(jù)了。

嘗試排錯方法
  • payment的值改成小寫

GET /order/doc/_search
{
  "query": {
    "bool": {
      "must": [
        {"term": {
          "payment": "alipay"
        }}
      ]
    }
  }
}
  • 或?qū)erm查詢改成match查詢

GET /order/doc/_search
{
  "query": {
    "bool": {
      "must": [
        {
            "match": {
              "payment": "alipay"
            }
        }
      ]
    }
  }
}

查詢有數(shù)據(jù)輸出,并且符合預(yù)期,嘗試方法有效。

問題追溯

明明order.json的對payment字段定義的類型是keyword,怎么變成text了?

由于出現(xiàn)此問題的環(huán)境是測試環(huán)境,有重刪索引數(shù)據(jù),然后再全部導(dǎo)入的操作(有點不規(guī)范,但僅限于測試環(huán)境,生產(chǎn)環(huán)境不會這么做),重新導(dǎo)入索引document數(shù)據(jù)的功能,es創(chuàng)建索引自動mapping時,payment字段的string內(nèi)容,會變成text。

解決辦法:

1.刪除索引

DELETE /order

2.按照order.json重建索引

PUT /order
{
    "mappings": {
        "doc": {
            "properties": {
              "id": {
            	"type": "keyword",
            	"index": true
              },
              "status": {
            	"type": "byte",
            	"index": true
              },
              "createTime": {
            	"type": "long",
            	"index": true
              },
              "uid": {
            	"type": "long",
            	"index": true
              },
              "payment": {
            	"type": "keyword",
            	"index": true
              },
              "commentStatus": {
            	"type": "byte",
            	"index": true
              },
              "refundStatus": {
            	"type": "byte",
            	"index": true
              }
            }
        }
    }
}

3.觸發(fā)程序灌數(shù)據(jù)(也可以用bulk)

到此,相信大家對“如何解決ES查詢數(shù)據(jù)突然變?yōu)榭盏膯栴}”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞名稱:如何解決ES查詢數(shù)據(jù)突然變?yōu)榭盏膯栴}
網(wǎng)站路徑:http://aaarwkj.com/article40/pcsdeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、品牌網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站內(nèi)鏈、網(wǎng)站營銷、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
男女性生活视频成年人观看| 日韩视频播放一区二区| 久久亚洲国产成人精品性色| 国产日韩精品专区一区| 色哟哟亚洲精品在线视频| 精品人妻aⅴ一区二区| 蜜臀一二区免费在线视频| 久久精品亚洲一区二区| 久久精品国产亚洲av超一| 熟女精品国产一区二区三区 | 久久夜色精品国产高清不卡| 日本在线一区二区三区免费视频| 四虎成人免费永久视频| 国产欧美日韩一级二级三级| 四虎精品视频在线免费| 国产日韩精品国产二区| 懂色粉嫩蜜臀久久一区二区| 中文字幕人妻熟女人妻| 高清中文字幕一区二区三区| 国产区av中文字幕在线观看| 日本免费一区二区三区视频观看| 久久人妻制服乱码中文字幕| 欧美日韩国产这里只有精品| 三级日本午夜在线观看| 亚洲香蕉一区二区免费| 亚洲一区二区三区熟女少妇| 中文字幕乱码人妻一区二| 亚洲一区二区三区精品在线| 日韩黄色大片免费在线观看| 色欧美一区二区三区在线| 亚洲一区二区三区香蕉不卡| av中文字幕国产精品| av全欧国男人在线天堂| 18禁视频免费无遮挡| 日韩精品成人一区二区三区免费| 午夜在线成人免费观看| 成人福利网站午夜一区| 日本欧美一区二区三区高清| 太爽了少妇高潮在线看片| 不卡av免费在线网址| 91精品国产综合久久不国产大片|