我想在其中搜索所有名称的elasticsearch进行查询,现在他们以这种方式执行,它将搜索一个名称,当我尝试放置多个名称时,它返回null,因为作为示例,我们假设名字为“ john ”,因此它将搜索john并找到它。
现在,如果我们选择其他名称“ johnsson ”,它将搜索 johnjohnsson ,该名称将始终返回空。
现在,我如何进行查询以搜索所有选定的名称。
'query_string' => array(
'default_field' => 'name',
'query' => $name[$i] // how to search multiple names
)
);
}
$docs = $client->search($params);
}
最佳答案
如果您的$name
变量是一个数组,则可以使用以下方法简单地尝试发送所有用空格分隔的值:
...
'query_string' => array(
'default_field' => 'name',
'query' => implode(" ", $name)
)
...
因此,如果
$name
是一个包含术语name1
和name2
的数组,则查询字符串中的查询将为name1 name2
关于php - Elasticsearch 的多项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244906/