我在elasticsearch遇到的坑

安裝沒什麼問題,windows安裝java環境,下載elastic安裝包,chorm安裝elastic-head插件php

1. PHP調用時 curl_setopt_array(): Unable to create temporary file

一開始覺得是Yii框架的問題,而後沒有用框架測試仍是同樣的問題。java

原來是php對臨時文件沒有寫權限,直接更改 php.ini 文件 ,找到 sys_temp_dir='./tmp' 的配置項,將前面的分號 ; 註釋去掉 , 我本地是 E:\phpStudy\tmp;node

參考連接:https://www.jianshu.com/p/8f2b23db9006git

2. 插入數據報錯

剛開始看到這個錯誤很懵比,可是仔細看看原來是數據類型和輸入值不同致使的。我在建立索引的時候定義的類型爲 integer 類型,結果插入數據爲 string 類型,致使報錯。
github

3. 精確搜索沒有匹配到

我對 order_id 創建的索引是 keyword,而且不對此字段進行分析,可是我按照order_id搜索的時候並無匹配到結果json

{
    "index": "order",
    "type": "order",
    "body": {
        "from": 0,
        "size": 20,
        "query": {
            "bool": {
                "must": [
                    {
                        "term": {
                            "order_id": "8589b284-f3e5-11e8-a35c-abd59385df3a"
                        }
                    }
                ]
            }
        }
    }
}

暫時也沒有找到緣由,在看到elasticsearch-head裏面用的是order_id.keyword精確查詢windows

3. 安裝IK分詞器和pinyin分詞器

IK分詞器對中文十分的友好,因而在github上下載了一個。解壓後放在plugins目錄下,可是從新啓動elasticsearch老是失敗。服務器

原來是ik分詞器我下載的是最新版本6.5.2,可是elasticsearch是6.5.1,版本不匹配致使的。因此ik分詞器和elasticsearch版本要一致才能夠正常啓動。框架

https://github.com/medcl/elasticsearch-analysis-pinyin/releases
https://github.com/medcl/elasticsearch-analysis-ik/releasescurl

4. No alive nodes found in your cluster

匹配插入文檔的時候,會出現這個錯誤。緣由是由於批量插入因爲是短鏈接,致使頻繁連接elasticsearch服務器。 優化代碼更改爲長鏈接,作成單例

相關文章
相關標籤/搜索