Я пытаюсь использовать ElasticSearch для аналитики --, специально для отслеживания «основного контента» для -созданной вручную Rails CMS. Требование немного сложнее, чем хранение счетчика для каждого фрагмента контента. Я не буду сейчас углубляться в проблему, так как не могу понять даже основы.
Моя проблема в том, что :я использую фасеты, и количество не соответствует ожидаемому. Например:
Запрос:
{"facets":{"el_ids":{"terms":{"field":"el_id","size":1,"all_terms":false,"order":"count"}}}}
Результат:
{"el_ids":{"_type":"terms","missing":0,"total":16672,"other":16657,"terms":[{"term":"quis","count":15}]}}
Хорошо, отлично, у части контента с идентификатором "quis" было 15 обращений, и поскольку order
равно count
, это должно быть моим главным содержанием. Теперь давайте получим 5 лучших частей контента.
Запрос:
{"facets":{"el_ids":{"terms":{"field":"el_id","size":5,"all_terms":false,"order":"count"}}}}
Результат (только грань):
[
{"term":"qgz9","count":26},
{"term":"quis","count":15},
{"term":"hnqn","count":15},
{"term":"higp","count":15},
{"term":"csns","count":15}
]
Хм? Значит, у части контента с идентификатором «qgz9» было больше просмотров — 26? Почему это не было лучшим результатом в первом запросе?
Хорошо, теперь давайте возьмем топ-100.
Запрос:
{"facets":{"el_ids":{"terms":{"field":"el_id","size":100,"all_terms":false,"order":"count"}}}}
Результаты (только грань):
[
{"term":"qgz9","count":43},
{"term":"difc","count":37},
{"term":"zryp","count":31},
{"term":"u65r","count":31},
{"term":"sxsi","count":31},
...
]
Так что теперь у "qgz9" 43 попадания вместо 26? Как это может быть? Я могу заверить вас, что в фоновом режиме ничего не происходит, изменяя индекс. Если я повторю эти запросы, я получу те же результаты.
Когда я повторяю этот процесс увеличения размера результата, счетчики продолжают меняться, и новые идентификаторы контента появляются вверху. Может ли кто-нибудь объяснить мне, что я делаю неправильно или где мое понимание того, как это работает, ошибочно?