如果是做中文搜尋,那你需要在用 logstash 傳輸資料前,設定好分詞器。常用的中文分詞器主要是 ik 和 jieba。它們和你是什麼工具進行資料同步沒什麼關係。如果要使用中文分詞,可以提前建立 index mapping, 設定好相應分詞器。然後,logstash 將資料同步到指定 index 即可,和沒有中文分詞的操作相同。
不知道你是否理解什麼是 mapping。
mapping 可類比於關係型資料庫中的建表語句,而某個欄位無論是 TEXT 還是 VARCHAR,對於應用程式而言,都是相同的操作。
logstash 只是一個 etl 工具,它和具體的業務並沒有什麼強關係。
如果是日誌收集,一般是用不到中文分詞的。服務日誌基本都是英文記錄,即使是中文日誌,標準分詞器會按中文的字進行分詞,日誌分析中常見的搜尋需求都能實現。
如果是做中文搜尋,那你需要在用 logstash 傳輸資料前,設定好分詞器。常用的中文分詞器主要是 ik 和 jieba。它們和你是什麼工具進行資料同步沒什麼關係。如果要使用中文分詞,可以提前建立 index mapping, 設定好相應分詞器。然後,logstash 將資料同步到指定 index 即可,和沒有中文分詞的操作相同。
不知道你是否理解什麼是 mapping。
mapping 可類比於關係型資料庫中的建表語句,而某個欄位無論是 TEXT 還是 VARCHAR,對於應用程式而言,都是相同的操作。
一個支援中文分詞的 mapping 的例子,如下:
接下來只需要透過 logstash 將資料同步到 my_index 中就可以了。
補充幾句。
logstash 或許也可以指定自動建立的 mapping 的中某個欄位的預設分詞器,可以研究下。而且,elasticsearch 能指定動態 mapping,幫助實現修改 mapping 預設建立的規則。