如何使用多匹配查询来获得一半的搜索词?
How to use multi-match query to get half search terms?
我想查找以 man
开头或包含短语 man
的名称。但是我也想查询不同的索引。
因此它应该 return 所有包含术语 man
的字段,例如 hoffman
姓氏,或任何包含术语的字段。
我怎样才能做到这一点?
"query": {
"multi_match": {
"query": "man",
"fields": [
"name",
"last_name",
"email"
]
}
}
}
{
"query": {
"multi_match": {
"query": "man",
"fields": [
"billing.name",
"billing.last_name",
"billing.email"
]
}
}
}
如果要跨多个索引进行搜索,则可以使用_index field
,跨多个字段搜索可以使用query_String
,而不是多匹配查询。
GET /_search
{
"query": {
"bool": {
"must": [
{
"terms": {
"_index": [
"index-1",
"index-2"
]
}
},
{
"query_string": {
"query": "*man*"
}
}
]
}
}
}
我想查找以 man
开头或包含短语 man
的名称。但是我也想查询不同的索引。
因此它应该 return 所有包含术语 man
的字段,例如 hoffman
姓氏,或任何包含术语的字段。
我怎样才能做到这一点?
"query": {
"multi_match": {
"query": "man",
"fields": [
"name",
"last_name",
"email"
]
}
}
}
{
"query": {
"multi_match": {
"query": "man",
"fields": [
"billing.name",
"billing.last_name",
"billing.email"
]
}
}
}
如果要跨多个索引进行搜索,则可以使用_index field
,跨多个字段搜索可以使用query_String
,而不是多匹配查询。
GET /_search
{
"query": {
"bool": {
"must": [
{
"terms": {
"_index": [
"index-1",
"index-2"
]
}
},
{
"query_string": {
"query": "*man*"
}
}
]
}
}
}