zoukankan      html  css  js  c++  java
  • yii2.0 elasticsearch模糊查询

     最近使用yii2.0查询es数据,一般查找语句用的yii2.0的query类,遇到模糊查询使用like的时候竟然报

    like conditions are not supported by elasticsearch.

    在QueryBuilder.php中查找到这个函数
    private function buildLikeCondition($operator, $operands)
    {
    throw new NotSupportedException('like conditions are not supported by elasticsearch.');

    }
    修改此函数为:
    private function buildLikeCondition($operator, $operands)
    {
    if (!isset($operands[0], $operands[1])) {
    throw new InvalidParamException("Operator '$operator' requires two operands.");
    }
    if($operator=="like"){
    return [
    'regexp' => [
    $operands[0]=>".*".$operands[1].".*",
    ],
    ];
    }else{
    throw new NotSupportedException('like conditions are not supported by elasticsearch.');
    }
    }
    解决了like模糊查询,用到了正则匹配语句。暂时解决了项目模糊查询的需要。用正则”regexp“应该还可以用wildcards查询,后者没用过,用过再补上
    
    
  • 相关阅读:
    css 样式表的书写顺序
    强大的动画插件。
    百叶窗特效(用move.js库)
    jq基础
    js动态控制表单表格
    js事件对象
    js事件
    js_DOM操作
    小明年龄、成绩、名次的求解问题
    如何获取亿图中的高质量图片?
  • 原文地址:https://www.cnblogs.com/angellating/p/7146214.html
Copyright © 2011-2022 走看看