我有一个应用程序,接受用户的免费文本搜索。假设用户在一个html输入文本中写下"one二三“,那么我的搜索URI是”.../solr/ my _index/select?id=2有更大的分数,因为单词"one“和"two”的匹配项更多。但我有更具体的要求:分数必须考虑的不是匹配计数,而是“搜索短语中的相似性”。因此,因为文档id=1的值是“
假设我想要找到20个相关的结果,我该如何在any_of中提升第一个条件(使用(:id).any_of(Co_author_ids)),以便如果有20个结果符合所述条件,它将返回,而不是尝试基于第二个条件进行匹配@solr_search = User.solr_search do with(:has_email, true)
with
Sphinx的支持邻近性的排名器使用略微修改的BM25排名器(统计词袋)+强烈支持后者的最长单词-子串匹配公式,而Solr使用一些其他统计排名函数(不是BM25,但类似)+对单词二元语法的提升(这类似于我认为这两种观点都没有模拟人类对相关性的看法,即当答案中的单词不一定相邻或顺序相同时,相关性不会掉下悬崖。查询: Bob Jones我知