我有3种类型,在Elasticsearch 5中索引相同的字段名称:
类型A
整数id
字符串名称
的TypeB
整数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"
]
谢谢。
答案 0 :(得分:1)
您需要为类型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"
}
}
]
}
}
]
}
}
}