Elasticsearch查询忽略空格

时间:2015-06-06 12:32:43

标签: elasticsearch

在Elasticsearch上,如何查询忽略空格的字符串属性?

该方案将电话号码索引为字符串,具有不同的格式。查询没有空格的手机,我可以获得拥有该手机的所有琴弦(有或没有空格)。例如:

//Make a array of directory where you want to look for files.
$dirs = array(
    ROOT . DS . 'Application/Config/' . APP_ENV . DS,
    CARBON_PATH . 'Config' . DS . APP_ENV . DS
);

function findFiles($directory, $filename){
    $match = array();

    foreach ($directory => $dir) {
        $files = glob($dir.$filename);
        foreach ($files as $file) {
             $match[] = $file;
        }

    }

    return $match;
} 

// to find database
$results = findFiles($dirs, 'database.*');

此查询将返回以下联系人:" 261981255"," 261 981 255"," 26 19 81 25 5"等

2 个答案:

答案 0 :(得分:1)

您需要使用特定的分析器将查询分解为克。

您可以通过为您的字段设置search_analyzer的映射来实现。

答案 1 :(得分:0)

尝试使用分析仪中的字符过滤器重新索引数据,以识别这些模式并调整到所需的方式。

通过这种方式,如果整个数据中只有一个模式,那么将来的所有查询都将很容易执行。