我在Sphinx上安装了postgres,当我运行查询时,我希望首先选择最相关的记录。换句话说,我首先想要以下查询:
query="word1 & word2 & word3"
然后,如果没有选择,
query="word1 | word2 | word3"
如何根据需要配置sphinx? Sphinx配置是默认的
答案 0 :(得分:1)
好https://github.com/andy128k/pg-sphinx说
sphinx_select(
/*index*/ varchar,
/*query*/ varchar,
/*condition*/ varchar,
/*order*/ varchar,
/*offset*/ int,
/*limit*/ int,
/*options*/ varchar)
从http://sphinxsearch.com/docs/current.html#sphinxql-select开始,您希望OPTIONS子句更改排名(ranker
选项)
http://sphinxsearch.com/docs/current.html#weighting
所以试试
sphinx_select(...., "word1 | word2 | word3", ..., "ranker=wordcount")
(已编辑以显示查询到位,需要要查询的OR查询!请参阅上面的评论)
(wordcount排名,非常基本,但应该做你想要的确切标准)
但可以使用自定义表达式,不是很好,但让你开始......
sphinx_select(...., "ranker=expr('sum(word_count+hit_count+lccs+exact_order)+bm25')")
更多细节...... http://sphinxsearch.com/blog/2010/08/17/how-sphinx-relevance-ranking-works/