1

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()。我还尝试在 django-sphinx 文档中提到的 sphinx.conf sql_query 配置中包含 content_type。没有任何效果。

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

任何人都可以阐明我如何从 sphinx 中的多个索引中获得排名结果

4

1 回答 1

6

而不是使用SphinxSearch,你想使用SphinxQuerySet

例如,如果我想查询三个索引,使用 、 和 字段对结果进行title加权tagscontent并设置自定义匹配 ( 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
于 2009-11-22T20:29:21.207 回答