У меня есть этот код:Фильтрации выполненных запросов в Elasticsearch просачивается API
#!/bin/bash
# Deletes, then creates the collection "foo".
curl -s -XDELETE localhost:9200/foo > /dev/null
curl -s -XPUT localhost:9200/foo > /dev/null
# Creates two percolators called "barbaz1" and "barbaz2" with different
# values in the "plugh" field.
curl -XPUT localhost:9200/_percolator/foo/barbaz1 -d '{
"plugh": "xyzzy",
"query": {
"term": {
"bar": "baz"
}
}
}'
echo ""
curl -XPUT localhost:9200/_percolator/foo/barbaz2 -d '{
"plugh": "waldo",
"query": {
"term": {
"bar": "baz"
}
}
}'
echo ""
# First filters out all queries whose "plugh" field is not "waldo", then
# tries to match those. Does NOT work as expected!
curl -XGET localhost:9200/foo/qux/_percolate -d '{
"doc": {
"bar": "baz"
},
"query": {
"term": {
"plugh": "waldo"
}
}
}'
echo ""
# Deletes the created percolators.
curl -s -XDELETE localhost:9200/_percolator/foo/barbaz1 > /dev/null
curl -s -XDELETE localhost:9200/_percolator/foo/barbaz2 > /dev/null
, которая создает два перколяторов называемых barbaz1
и barbaz2
и затем запустить документ против них. То, что я ожидал увидеть, что только barbaz2
матчи, что я получаю вместо этого:
{"ok":true,"_index":"_percolator","_type":"foo","_id":"barbaz1","_version":1}
{"ok":true,"_index":"_percolator","_type":"foo","_id":"barbaz2","_version":1}
{"ok":true,"matches":[]}
Что я делаю неправильно?
право, это, кажется, проблема. перколятор работает в режиме реального времени, когда дело доходит только до выполнения всех запросов, но это только (рядом) в режиме реального времени, поскольку запросы фильтрации подразумевают запрос, для которого требуется обновление, чтобы сделать данные доступными для поиска. – javanna
Я могу подтвердить, что эта функция теперь работает на меня. Спасибо! –