我有一个包含
等条目的数据库title: This is my awesome title
abstract: A more detailed descriptions of what [...]
我想构建一个与上述文档匹配的Elasticsearch查询,例如
awe detai
单词:具有多个搜索词的multi_match phrase_prefix查询。 (这旨在用作搜索类型的功能。)
我看到你如何组合multi_match和phrase_prefix,但我不清楚如何为多个搜索词执行此操作。
任何提示?
答案 0 :(得分:3)
嗯,有几种方法可以做到这一点
POST stack/autocomplete/1
{
"title": "This is my awesome title",
"abstract": "A more detailed descriptions of what"
}
然后你可以使用查询字符串搜索星号,但问题是你需要附加asterix来查询
POST stack/autocomplete/_search
{
"query": {
"query_string": {
"fields": [
"title",
"abstract"
],
"query": "awe* detai*"
}
}
}
如果您想匹配用户查询,那么您可以像那样使用
POST stack/autocomplete/_search
{
"query": {
"multi_match": {
"fields": [
"title",
"abstract"
],
"query": "awesome tit",
"type": "phrase_prefix"
}
}
}
另外一个需要考虑的选择是将nGram与查询字符串一起使用,这样您就不需要修改用户查询" awe * detai *"