首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用太阳黑子-rails提升Lucene项

使用太阳黑子-rails提升Lucene项
EN

Stack Overflow用户
提问于 2010-11-16 00:59:05
回答 2查看 1.2K关注 0票数 1

我对Lucene的术语增强查询语法有一个问题,特别是在Ruby on Rails中通过sunspot_rails gem。这使您可以在查询过程中指定特定术语的权重,而与特定字段的权重无关。

sunspot生成的HTML查询使用qf参数来指定要按照配置进行搜索的字段,以及查询本身的q参数。当将插入符号添加到搜索项以指定boost (即q=searchterm^5)时,它不返回任何结果,即使返回的结果没有boost项也是如此。

另一方面,如果我手动创建一个HTTP查询,并手动指定要搜索的字段(q=title_texts:searchterm^5),则会返回结果,并且分数似乎会受到提升的影响。

简而言之,它看起来好像查询术语提升不能与使用qf指定的字段一起工作。

我的应用程序调用跨多个字段的搜索,使用与这些字段相关联的相应的boosting,有条件地依次对查询的各个术语执行boosting。

有什么见解吗?

1:http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Boosting a Term

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-02 10:32:53

我找到的解决方案是使用DisMax,但在bq参数中添加一个包含提升项的布尔字符串。

票数 1
EN

Stack Overflow用户

发布于 2010-11-16 03:42:04

Sunspot使用dismax解析器进行全文搜索,避免使用常用的Lucene查询语法,而是采用有限的(但用户输入友好的)查询语法,并结合一组附加参数(如qf),这些参数可由客户端应用程序构建,以调整搜索的工作方式。Sunspot在全文DSL中使用boost_fields方法提供了对每个字段boost的支持:

http://outoftime.github.com/sunspot/docs/classes/Sunspot/DSL/Fulltext.html#M000129

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4186844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档