Как с помощью Boto ограничить поиск в облаке определенным полем?

Мне нужно выполнить поиск в облаке только для одного из полей индекса моего домена. Например, мне нужны все результаты, где «название» содержит «звездные войны». Возможно ли это с помощью Бото?

Согласно документам AWS, вам необходимо использовать Параметр q.options:

q=star wars&q.options={fields: ['title']}

Однако похоже, что Boto не поддерживает этот параметр:

def search(self, q=None, bq=None, rank=None, return_fields=None,
               size=10, start=0, facet=None, facet_constraints=None,
               facet_sort=None, facet_top_n=None, t=None):

Можно ли искать только по одному полю с помощью Boto?


person user2133266    schedule 26.05.2015    source источник


Ответы (1)


Вы хотите использовать API boto cloudsearch2 (обратите внимание на «2»), который эквивалентен версии AWS CloudSearch 2013-01-01 и имеет параметр options.

search(q=None, parser=None, fq=None, rank=None, return_fields=None,
           size=10, start=0, facet=None, highlight=None, sort=None,
           partial=None, options=None)

Документ для параметра options:

options (str) — параметры анализатора запросов, указанные в парсере. Указывается как строка в формате JSON. {поля: ['название^5', 'описание']}

http://boto.readthedocs.org/en/latest/ref/cloudsearch2.html

person alexroussos    schedule 27.05.2015