2014-01-10 5 views
0

Я делаю phrase_prefix Ищем «инженер», и я получаю 36 очков за термин «Инжиниринг» в графе «навыки». Затем я применяю term filter в этом поле фасет для «Инжиниринг», а в новых отфильтрованных результатах теперь счетчик для «Инжиниринг» в фасете составляет 42.Результаты поиска и результаты фасета не соответствуют

Отфильтрованный запрос возвращает 42 результата и каждый соответствует фасету, то есть все они содержат «Инжиниринг» как навык.

Так что я бы ожидать, что нефильтрованное запрос иметь 42 счетчик для термина «инжиниринг» в фаской «навыков», но, как я уже говорил выше, это только 36.

Вот отображение и запрос https://gist.github.com/santiago/a249418e5bf7531ead85

Что мне здесь не хватает?

Thanks

PD. Я использую 0.90.5

+0

Попробуйте этот метод: https://gist.github.com/eire1130/44d18734503267c835b9 выполните его дважды, один раз с фильтром и один раз без него. –

+0

Тот же результат. Без фильтра я вижу 36 отсчетов для Инжиниринга, а добавление фильтров показывает 42. – sofrito

+0

Вот что можно проиллюстрировать ситуацию: https://gist.github.com/santiago/ee65c9da0c6a5270dee0 Запрос возвращает 6 результатов, посмотрите, что для каждый из этих 6 обладает навыками для «Microsoft Word», «Microsoft Office» и «English». Но посмотрите на подсчеты этих терминов в гранях. «Microsoft Word» (5), «Microsoft Office» (5) и «Английский» (3) – sofrito

ответ

0

В 0.90.5, вы можете получить результаты, которые вы ожидаете, увеличивая размер списка фасетов:

"facets": { 
    "skills": { 
     "terms": { 
     "field": "skills", 
     "size": 50 
     } 
    }, 

Причина вы получаете неточный результат, и почему все больше размер помогает объясняется в Elasticsearch docs on term facets:

параметр

размер определяет, сколько верхние термины должны быть возвращены из из общего списка терминов. По умолчанию узел, координирующий процесс поиска , будет запрашивать каждый осколок, чтобы предоставить свои собственные условия верхнего размера , и как только все ответы будут реагировать, это уменьшит результаты до окончательного списка , который затем будет отправлен обратно клиенту. Это означает, что если число уникальных терминов больше, чем размер, возвращаемый список будет слегка выключен и не точным (может быть, что количество членов счета равно , и это может быть даже тот термин, который должен был быть записи верхнего размера не были возвращены).

В 0.9.6+, вы можете добавить параметр shard_size к фаске, которые описывают как многие термины требовать от каждого осколка, до объединения результатов в один список.

Смежные вопросы