Запрос множественного индекса в django-sphinx

Документация django-sphinx показывает, что слой django-sphinx также поддерживает некоторые базовые запросы по нескольким индексам.

http://github.com/dcramer/django-sphinx/blob/master/README.rst

from djangosphinx.models import SphinxSearch

SphinxSearch('index1 index2 index3').query('hello')

Кажется, SphinxSearch не содержит функцию query(). Я также попытался включить content_type в конфигурацию sphinx.conf sql_query, как упомянуто в документации django-sphinx. Ничего не сработало.

Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'SphinxSearch' object has no attribute 'query'

Кто-нибудь может пролить свет на то, как я мог получить ранжированные результаты по нескольким индексам в сфинксе

1 ответ

Решение

Вместо того, чтобы использовать SphinxSearch, вы хотите использовать SphinxQuerySet

например, если я хочу запросить три индекса, взвесьте результаты, используя title, tags, а также content поля и установить пользовательское соответствие (SPH_MATCH_EXTENDED2) и рейтинг (SPH_RANK_NONE) режимы:

from djangosphinx.models import SphinxQuerySet

search = SphinxQuerySet(
    index = "index_1 index_2 index_n",
    weights = {
        'title': 100,
        'tags': 80,
        'content': 20
    },
    mode = 'SPH_MATCH_EXTENDED2',
    rankmode = 'SPH_RANK_NONE')

results = search.query('what is the answer to life, the universe, and everything?')

for result in results:
    print result
Другие вопросы по тегам