原创 圖解Elasticsearch中的_source、_all、store和index屬性

默認情況下,Elasticsearch裏面有2份內容,一份是原始文檔,也就是_source字段裏的內容,我們在Elasticsearch中搜索文檔,查看的文檔內容就是_source中的內容 _all字段裏面包含了一個文檔裏面的所有信息

原创 mysql分組取每組前幾條記錄(排序)

首先來造一部分數據,表mygoods爲商品表,cat_id爲分類id,goods_id爲商品id,status爲商品當前的狀態位(1:有效,0:無效)。 CREATE TABLE `mygoods` ( `goods_id`

原创 Elasticsearch 7.x 映射(Mapping)中的字段類型

1 概念 Elasticsearch的映射用來定義一個索引中的文檔如何被存儲,定義一個映射類似於定義一個Mongo DB集合,在Elasticsearch 7.x中,映射和索引是一對一的關係。映射分爲靜態映射和動態映射,前者需要用戶手動定

原创 匹配查詢(Match)

匹配(Match)查詢屬於全文(Fulltext)查詢,不同於詞條查詢,ElasticSearch引擎在處理全文搜索時,首先分析(analyze)查詢字符串,然後根據分詞構建查詢,最終返回查詢結果。匹配查詢共有三種類型,分別是布爾(boo

原创 elasticsearch優化之多字段搜索multi_match查詢

1 首先說下multi_match多字段匹配的三種類型,分別是best_fields(最佳字段) 、 most_fields(多數字段) 和 cross_fields(跨字段) 2 best_fields類型,multi_match默認的

原创 elasticsearch 7.0 新特性之Intervals query

1、介紹 爲了更加簡單靈活的控制查詢時字符串在文本中匹配的距離與先後順序,官方在es7.0引入了intervals query,用戶可單一或者組合多個規則集合在某一個特定的text field上進行操作。 例如,我們用“my favour

原创 Elasticsearch中的store field跟non-store field的區別

在定義index的mapping的時候,我們可以指定某些fields是否要store(默認是不store), 那麼他們有什麼區別呢? PUT /my_index {   "mappings": {     "my_type": {    

原创 php-rdkafka手動提交偏移量

在項目中使用php-rdkafka的高級消費者時,發現設置了: $topicConf->set('enable.auto.commit', 'false'); 沒有效果,還是會自動提交offset,查了各種資料,正確的應該是這樣設置: $

原创 [Golang] timer可能造成的內存泄漏

背景 前兩天,跟一位學長交流Golang;然後,他突然問我:你知道timer可能造成內存泄漏嘛? 當時,甚是一臉懵逼,畢竟之前寫的Agent測了好久,都沒發現這個問題啊。今天,就索性瞭解了下。這裏先說下結論,timer的誤用可能造成某些等

原创 記一次golang定時器引發的詭異錯誤

作爲一隻在9127工作制下摸魚的程序猿,週六自然是愉快的加班了。一早上除了一位新同學在我們的“敏捷迭代”下錯刪了接口之外沒什麼大事。 臨近中午,突然隔壁組大佬找到我,表示有個go語言服務偶現panic的問題需要求助。瞭解了一下,原來是他們

原创 sarama-cluster消費者運行時報panic: non-positive interval for NewTicker

筆者是go新手,照着例子運行customer代碼如下: package main import ( _"flag" "fmt" "log" "os" "os/signal" _"syscall" "github.com

原创 Golang 定時器timer和ticker

兩種類型的定時器:ticker和timer。兩者有什麼區別呢?請看如下代碼: ticker package main import (         "fmt"         "time" ) func main() {

原创 windows環境下給PHP增加rdkafka擴展

因爲工作需要kafka作爲消息中間件,所以在本地開發環境進行測試的時候需要給PHP添加rdkafka擴展,使用PHP作爲producer或者cosumer,在此紀錄一下rdkafka的安裝過程。 擴展下載地址:http://pecl.ph

原创 New state of 'nil' is invalid

背景:docker terminal執行jar程序的時候,報New state of 'nil' is invalid的錯誤,但是docker ps發現docker還是up狀態的。   原因:docker在windows上某些字符無法顯示

原创 Golang如何正確的停止Ticker

Golang可以利用time包的Ticker實現定時器的作用,最近使用Ticker時,發現調用Ticker的Stop方法無法正確的停止Ticker,協程會阻塞在等待Ticker的C通道處,精簡後的代碼如下: func UseTickerW