Запрос по разделам в Vespa.ai - PullRequest
4 голосов
/ 18 июня 2020

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

Ответы [ 2 ]

2 голосов
/ 20 июня 2020

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

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

1 голос
/ 18 июня 2020

Это не поддерживается для описанного вами общего варианта использования. Ближайшая функция, которую вы, возможно, захотите изучить, - это использовать streaming mode и, например, использовать ha sh двух ключей в качестве идентификатора группы документов.

Подробная информация о потоковом режиме: https://docs.vespa.ai/documentation/streaming-search.html

Информация о схемах идентификаторов документов: https://docs.vespa.ai/documentation/documents.html

Другой вариант, но, вероятно, не подходящий для вашего варианта использования, - разделить документы в разные типы документов.

...