我有三个自己的索引: A , B , C 。此外,我还有 .marvel-kibana 索引。 A , B , C 索引中的所有文档都具有global_priorty字段。
我想知道,为什么排除了ABC索引之外的所有数据,但是Elastic抛出异常: ElasticsearchException [无法在 .marvel-kibana 索引中找到字段[global_priorty]] 的映射器?是否不排除该索引(默认情况下包含在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": { ... }
}
}
最佳答案
卡罗尔
我不确定您是否在这里实现了预期的目标。在索引过滤器中列出索引并不自动意味着它已从搜索中排除。
过滤器的工作方式如下:
对于索引列表中的索引,请使用过滤器。对于其他人,请使用no_match_filter。
您的过滤器的外观如何?
仅搜索选定索引的首选方法是在搜索端点中使用它们。就像是:
get /A,B,C/_search
{
....
}
忠告:我记得在设置多个索引和类型时Java API遇到了一些问题。但是,那是很久以前的事了。
你应该试试看!
问候,
卡罗尔
附言
Powodzenia!顺便说一句:Parafrazując:Wszystkie Karole到porządnechłopaki!
关于elasticsearch - function_score尝试在Elasticsearch中使用排除索引中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29536645/