Client.msearch и пейджинг


(Alexey) #1

Подскажите, пожалуйста, правильно ли я понял что не могу в msearch сделать стандартный пейджинг, чтоб из всех запросов возвращалось не более 10 записей? и объединить одним from : 0, size : 10, ВСЕ запросы (которые у меня генерируются и заранее их количество не знаю) нету возможности?

  (            {
    			query: {
    				match: {
    					_all: searchTerm
    				}
    			},
    			**from : 0, size : 10,**
    			highlight: {
    				fields: {
    					"*": {require_field_match: false}
    						}
    			}
    		})

(Alexey) #2

То что внутри каждого подзапроса я могу проставить с какой по какую - это я понял. Меня интересует можно ли агрегировать? Объединить чтоб из всех запросов сразу возвращало не более 10ти записей за 1 раз.


(Alexey) #3

Я хочу на клиенте в браузере указать - выводи на страницу по 20 записей. Вот проблема у меня в том, что если я на 21ую страницу пейджинга перехожу - то как мне туда именно очередные 20 записей вывести. не прибегая к сложным сторонним математическим вычислениям, которые понизят скорость поиска.


(Alexey) #4

нету стандартного паттерна для таких ситуаций? чтоб производительность поиска не сильно просаживалась.


(Alexey) #5

видимо прийдется результаты группировать по индексам.


(Igor Motov) #6

Я что-то не понимаю, если нужен один результат - почему бы не объединить все в один запрос и посылать этот запрос нормальным search-ем вместо msearch?


(Alexey) #7

у меня около 20 индексов. в каждом примерно по 10 типов. внутри каждого типа по 15-20 полей.

я думал что когда индексов много - лучше разграничивать на подзапросы.


(Igor Motov) #8

Я не думаю, что это хорошее решение, тем более если потом надо бороться с объединением результатов. Лучше предоставить эту работу elasticsearch. Я думаю это будет даже немного быстрее потому что elasticsearch будет возвращать только 10 записей вместо 200. Единственная проблема, которая тут может возникнуть, это если вы неаккуратно создали эти типы и поле с одним и тем же названием имеет разный тип в разных индексах/типах, и вы пытаетесь по этому полю сортировать или агрегировать.


(Alexey) #9

Вот это я какраз учел )

Сделаю оба типа запросов )

msearch просто по табам раскидаю ) Так даже лучше получилось ) Спасибо большое что как всегда быстро и подробно ответили!


(system) #10

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.