我在 Elasticsearch 5 中索引了 3 种具有相同字段名称的类型:
A型
整数 ID
字符串名称
B型
整数 ID
字符串名称
TypeC - 整数 id - 字符串名称
GET myindex/TypeA,TypeB,TypeC/_search
{
"_source": ["id", "name"],
"query": {
"bool": {
"should": [
{
"query_string": {
"fields": [
"_all",
"name^3"
],
"query": "Foo bar*",
"default_operator": "and"
}
}
]
}
}
}
我只想提升 TypeA 的名称字段。在这种情况下,TypeA、TypeB 和 TypeC 的名称字段被提升。
如何只提升 TypeA 的名称?
我正在寻找这样的东西:
"fields": [
"_all",
"TypeA.name^3"
]
谢谢你。
您需要为类型 A 创建一个子查询,为类型 B 和 C 创建另一个子查询
GET myindex/_search
{
"_source": [
"id",
"name"
],
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"_type": "TypeA"
}
},
{
"query_string": {
"fields": [
"_all",
"name^3"
],
"query": "Foo baar*",
"default_operator": "and"
}
}
]
}
},
{
"bool": {
"must": [
{
"terms": {
"_type": [
"TypeB",
"TypeC"
]
}
},
{
"query_string": {
"fields": [
"_all",
"name"
],
"query": "Foo baar*",
"default_operator": "and"
}
}
]
}
}
]
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句