我正在实施成分文本搜索,以便为食谱添加成分。我目前在成分名称上有一个全文索引,它存储在一个文本字段中,如下所示:
“Sauce,tomato,lite,Heinz”
我发现因为数据库中有许多名称非常相似的成分,所以简单地按相关性排序在很多时候都不能正常工作。所以,我发现自己按照一堆自己的经验法则进行排序,这可能会复制很多全文搜索算法,这种算法会产生数值相关性。例如(删节):
ORDER BY [成分名称正是搜索词], [成分名称以搜索词开头], [成分名称以搜索中的任何单词开头,并按某种顺序包含所有搜索词], [成分名称包含某些顺序的所有搜索词],
......等等。其中每个都在SELECT规范中定义为返回1或0的表达式,因此我按顺序排序。
我很想听听以下建议:
感谢阅读!
答案 0 :(得分:0)
杰里米,
您正在寻找的是Solr支持的Rank Boosting。这是一个链接,您可以在其中阅读更多相关信息:
http://wiki.apache.org/solr/SolrRelevancyCookbook#Ranking_Terms