postgres狮身人面像搜索顺序

时间:2017-04-28 08:17:14

标签: postgresql sphinx

我在Sphinx上安装了postgres,当我运行查询时,我希望首先选择最相关的记录。换句话说,我首先想要以下查询:

query="word1 & word2 & word3"

然后,如果没有选择,

query="word1 | word2 | word3"

如何根据需要配置sphinx? Sphinx配置是默认的

1 个答案:

答案 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/