zoukankan      html  css  js  c++  java
  • 我在elasticsearch遇到的坑

    安装没什么问题,windows安装java环境,下载elastic安装包,chorm安装elastic-head插件

    1. PHP调用时 curl_setopt_array(): Unable to create temporary file

    一开始以为是Yii框架的问题,然后没有用框架测试还是一样的问题。

    原来是php对临时文件没有写权限,直接更改 php.ini 文件 ,找到 sys_temp_dir='./tmp' 的配置项,将前面的分号 ; 注释去掉 , 我本地是 E:phpStudy mp;

    参考链接:https://www.jianshu.com/p/8f2b23db9006

    2. 插入数据报错

    刚开始看到这个错误很懵比,但是仔细看看原来是数据类型和输入值不一样导致的。我在创建索引的时候定义的类型为 integer 类型,结果插入数据为 string 类型,导致报错。

    3. 精确搜索没有匹配到

    我对 order_id 建立的索引是 keyword,并且不对此字段进行分析,但是我按照order_id搜索的时候并没有匹配到结果

    {
        "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精确查询

    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/releases

    4. No alive nodes found in your cluster

    匹配插入文档的时候,会出现这个错误。原因是因为批量插入由于是短连接,导致频繁链接elasticsearch服务器。
    优化代码更改成长连接,做成单例

    不积跬步,无以至千里
  • 相关阅读:
    P5107 能量采集
    P4655 [CEOI2017]Building Bridges
    P1129 [ZJOI2007]矩阵游戏
    P5299 [PKUWC2018]Slay the Spire
    P1625求和 giao精大杂烩
    背包
    根号分治
    CF963B
    国王游戏
    P6006 USACO 3SUM G
  • 原文地址:https://www.cnblogs.com/wu-song/p/9888982.html
Copyright © 2011-2022 走看看