ElasticSearch, как искать документ, содержащий определенный элемент массива - PullRequest
2 голосов
/ 01 февраля 2012

У меня небольшая проблема сasticsearch, и мне интересно, может ли кто-нибудь помочь мне решить ее.

У меня есть документ, содержащий массив кортежей (публикаций).

Что-то вроде:

    {
       ....

       publications: [
         {
           item1: 385294,
           item2: 11
         },
         {
           item1: 395078,
           item2: 1
         }
       ]

       ....
    }

Проблема, с которой я столкнулся, заключается в получении документов, которые содержат определенный кортеж, например (item1 = 395078 AND item2 = 1).

Что бы я ни пытался, кажется, что он всегда обрабатывает item1и отдельно item2, я не могу сказать эластичному поиску, что item1 и item2 должны иметь определенное значение внутри одного кортежа, а не по всему массиву ...

Есть ли что-то, чего я здесь упускаю?

Спасибо

1 Ответ

2 голосов
/ 01 февраля 2012

Это невозможно по прямому пути.ElasticSearch выравнивает массив перед проверкой состояния.Какое среднее значение упругого поиска соответствует a = x И b = y1 для [{a = x, b = y}, {a = x1, b = y1}], чего не происходит при обычной проверке массива.здесь можно сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...