我在使用 Lucene 的 Term [Boosting][1] 查询语法时遇到问题,特别是在 Ruby on Rails 中通过 sunspot_rails gem。这样您就可以在查询期间指定特定术语的权重,并且与特定字段的权重无关。
sunspot 生成的 HTML 查询使用 qf 参数指定要按照配置搜索的字段,以及查询本身的 q 参数。当插入符号添加到搜索词以指定提升时(即 q=searchterm^5),它不返回任何结果,即使在没有提升词的情况下会返回结果。
另一方面,如果我手动创建一个 HTTP 查询并手动指定要搜索的字段 (q=title_texts:searchterm^5),则会返回结果并且分数似乎会受到提升的影响。
简而言之,查询词提升似乎不能与 qf 指定的字段一起使用。
我的应用程序要求搜索多个字段,使用与这些字段相关联的相应提升,有条件地依次提升查询的各个术语。
有什么见解吗?
[1]: http: //lucene.apache.org/java/2_9_1/queryparsersyntax.html#Boosting a Term