Использование перколята для массовой индексации в asticsearch-ruby
В соответствии с этой проблемой, Flexiblesearch поддерживает использование Per аклята с индексом (один документ) или массовым (несколько документов). Для примера не приведено ни одного примера, поэтому я подхожу к названию проблемы, что эта функциональность была добавлена 5 лет назад.
К сожалению, я не могу найти никакой информации об этой функциональности, доступной в ruby API,asticsearch-ruby.
Кто-нибудь знает, доступен ли он, или, возможно, есть пример кода?
Благодарю.
Обновить:
На этой странице описывается, как фильтроваться при индексации отдельного документа, и утверждается, что это возможно оптом. Теперь, как это сделать в asticsearch-ruby?
Похоже, что библиотека NEST может это сделать (см. Внизу страницы), если я захочу переписать свой проект в.Net.
2 ответа
В Ruby не должно быть особого подхода, кроме простого _bulk
операция, определяющая _index
как ваш индекс и как _type
.percolator
:
POST /_bulk
{"index":{"_index":"some_index","_type":".percolator","_id":"1"}}
{"query":{"match":{"whatever_field":"some value 1"}}}
{"index":{"_index":"some_index","_type":".percolator","_id":"2"}}
{"query":{"match":{"whatever_field":"some value 2"}}}
{"index":{"_index":"some_index","_type":".percolator","_id":"3"}}
{"query":{"match":{"whatever_field":"some value 3"}}}
Для отправки нескольких запросов на фильтрацию существует mpercolate, который первоначально был создан в результате массового запроса функций и в конечном итоге получил название multi percolate api. И я вижу, что asticsearch-ruby поддерживает это.
?percolate=*
особенность для bulk
кажется, нет в списке аргументов для _bulk
и, фактически, для этого есть проблема: github.com/elastic/elasticsearch-ruby/issues/176.
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: Я снова посмотрел на это, и я более склонен полагать, что эта функция была полностью удалена в ES 1.0.0, после проблемы с github для перепроектирования перколятора. Я не вижу конкретного заявления об этом удалении, но исходный код, связанный с массовой индексацией с percolator
опция после этого редизайн был удален. Также в документации нигде не указана эта опция. Обычно, когда это происходит, это не упущение, но функциональность просто отсутствует. Все еще связано с документацией - не забывайте, что любым ресурсам, которые вы нашли в Интернете по этому поводу, не менее двух лет, и я бы взял их с небольшим количеством соли, прежде чем предположить, что они все еще действительны.
Я не удивлюсь, если вы протестируете это в Elasticsearch (без ruby, nest или любого другого клиента) с curl
или почувствовать и увидеть, что это не работает. Я тестировал это в 1.6 только сейчас, и я не вижу функциональности.
В последней основной документации (в настоящее время не выпущенной версии Elasticsearch 6.x) есть раздел о перколяции нескольких документов. Это новая функциональность, запланированная к выпуску в 6.X, но не в кандидатах на выпуск 6.0.