在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"等
答案 0 :(得分:1)
您需要使用特定的分析器将查询分解为克。
您可以通过为您的字段设置search_analyzer的映射来实现。
答案 1 :(得分:0)
尝试使用分析仪中的字符过滤器重新索引数据,以识别这些模式并调整到所需的方式。
通过这种方式,如果整个数据中只有一个模式,那么将来的所有查询都将很容易执行。