raz*_*inr 5 nested elasticsearch
我正在使用elasticsearch 1.1.
通常在这个版本中,嵌套文档上的过滤器应该可以工作.
虽然,我试图这样做,但我收到以下错误:
failures: [
{
index: test
shard: 4
reason: BroadcastShardOperationFailedException[[test][4] ]; nested: PercolateException[failed to percolate]; nested: ElasticsearchIllegalArgumentException[Nothing to percolate];
}
]
Run Code Online (Sandbox Code Playgroud)
我有以下过滤器(对不起elasticsearch头删除了我的所有报价):
{
_index: test
_type: .percolator
_id: 27
_version: 1
_score: 1
_source: {
query: {
filtered: {
query: {
match_all: { }
}
filter: {
nested: {
filter: {
term: {
city: london
}
}
path: location
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在尝试渗透此文档时,我收到错误:
{
...
"location": {
"date": "2014-05-05T15:07:58",
"namedplaces": {
"city": "london"
}
}
}
Run Code Online (Sandbox Code Playgroud)
知道为什么它不起作用吗?
编辑:
在elasticsearch日志中,我对错误的准确度更高:
[2014-05-06 13:33:48,972][DEBUG][action.percolate ] [Tomazooma] [test][2], node[H42BBxajRs2w2NmllMnp7g], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.percolate.PercolateReque
st@7399452e]
org.elasticsearch.percolator.PercolateException: failed to percolate
at org.elasticsearch.action.percolate.TransportPercolateAction.shardOperation(TransportPercolateAction.java:198)
at org.elasticsearch.action.percolate.TransportPercolateAction.shardOperation(TransportPercolateAction.java:55)
at org.elasticsearch.action.support.broadcast.TransportBroadcastOperationAction$AsyncBroadcastAction$2.run(TransportBroadcastOperationAction.java:226)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: Nothing to percolate
at org.elasticsearch.percolator.PercolatorService.percolate(PercolatorService.java:187)
at org.elasticsearch.action.percolate.TransportPercolateAction.shardOperation(TransportPercolateAction.java:194)
... 5 more
Run Code Online (Sandbox Code Playgroud)
ES的文档对此不太清楚。但是当您查看此页面时,您会发现当您进行渗透时,您需要用 doc{} 包围索引文档。这确实是强制性的,否则您将出现以下异常:
尝试这样做:
{
"doc":{
...
"location": {
"date": "2014-05-05T15:07:58",
"namedplaces": {
"city": "london"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望它会有所帮助;-)
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |