Запрос множественного индекса в 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