function_score 尝试在 elasticsearch 中使用排除索引中的字段
function_score tries to use field from excluded index in elasticsearch
我有三个自己的索引:A、B、C。此外,我还有 .marvel-kibana 索引。 A、B、C 索引中的所有文档都有 global_priorty 字段。
我想知道,为什么尽管排除了除 ABC 索引以外的所有索引,但弹性仍会抛出异常:ElasticsearchException[无法找到字段 [global_priorty]] 的字段映射器在 .marvel-kibana 索引中?该索引是否已排除(默认包含在 no_match_filter 中)?
我的代码:
GET /_search
{
"query": {
"filtered": {
"query": {
"function_score": {
"query": { ... },
"functions": [
{
"field_value_factor": {
"field": "global_priorty",
"factor": 1,
"modifier": "sqrt"
}
}
]
}
},
"filter": {
"indices": {
"indices": [ "A", "B", "C" ],
"filter": { ... },
"no_match_filter": "none"
}
}
}
},
"indices_boost": { ... },
"highlight": { ... }
}
}
卡罗尔,
我不确定您是否达到了预期目的。在索引过滤器中列出索引并不意味着它会自动从搜索中排除。
过滤器的工作原理如下:
对于 indices 列表中的索引,使用 filter。对于其他人使用 no_match_filter.
你的过滤器怎么样?
仅搜索选定索引的首选方法是在搜索端点中使用它们。类似于:
get /A,B,C/_search
{
....
}
警告:我记得在设置多个索引和类型时 Java API 遇到了一些问题。但那是很久以前的事了。
你应该试一试!
此致,
卡罗尔
P.S。
Powodzenia!顺便说一句:Parafrazując:Wszystkie Karole 到 porządne chłopaki!
我有三个自己的索引:A、B、C。此外,我还有 .marvel-kibana 索引。 A、B、C 索引中的所有文档都有 global_priorty 字段。
我想知道,为什么尽管排除了除 ABC 索引以外的所有索引,但弹性仍会抛出异常:ElasticsearchException[无法找到字段 [global_priorty]] 的字段映射器在 .marvel-kibana 索引中?该索引是否已排除(默认包含在 no_match_filter 中)?
我的代码:
GET /_search
{
"query": {
"filtered": {
"query": {
"function_score": {
"query": { ... },
"functions": [
{
"field_value_factor": {
"field": "global_priorty",
"factor": 1,
"modifier": "sqrt"
}
}
]
}
},
"filter": {
"indices": {
"indices": [ "A", "B", "C" ],
"filter": { ... },
"no_match_filter": "none"
}
}
}
},
"indices_boost": { ... },
"highlight": { ... }
}
}
卡罗尔,
我不确定您是否达到了预期目的。在索引过滤器中列出索引并不意味着它会自动从搜索中排除。
过滤器的工作原理如下: 对于 indices 列表中的索引,使用 filter。对于其他人使用 no_match_filter.
你的过滤器怎么样?
仅搜索选定索引的首选方法是在搜索端点中使用它们。类似于:
get /A,B,C/_search
{
....
}
警告:我记得在设置多个索引和类型时 Java API 遇到了一些问题。但那是很久以前的事了。
你应该试一试!
此致, 卡罗尔
P.S。 Powodzenia!顺便说一句:Parafrazując:Wszystkie Karole 到 porządne chłopaki!