我有一个包含多个字段的文档。
文件
我想使用google搜索,例如搜索。
当我使用“蓝色汽车”时,它必须是精确的值匹配而根本没有任何分析。它必须只找到没有词干等的确切短语。
为此我得到了一个这样的工作版本 - >
{
"query": {
"multi_match": {
"query": "blue car",
"fields": [
"text",
"message",
"whatever"
],
"type": "phrase"
}
}
}
虽然对于其他类型的搜索,例如-diesel或+ hybrid。我正在考虑使用那个好像支持那个。
{
"query": {
"simple_query_string": {
"fields": [
"text",
"message",
"whatever"],
"default_operator": "and",
"query": "-diesel +hybrid"
}
}
}
遗憾的是,即使我在查询中将文本放在引号中,简单的查询字符串查询也会使用分析器。
你们是否知道如何将两者结合起来呢?我可以使用bool查询将它们组合在一起吗?
答案 0 :(得分:5)
以下是使用bool query
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "blue car",
"fields": [
"text",
"message",
"whatever"
],
"type": "phrase"
}
},
{
"multi_match": {
"query": "hybrid",
"fields": [
"text",
"message",
"whatever"
]
}
}
],
"must_not": {
"multi_match": {
"query": "diesel",
"fields": [
"text",
"message",
"whatever"
]
}
}
}
}
}