小编Joe*_*Joe的帖子

使用Solrj在SOLR中增强字段

我正在使用solrj API来查询我的SOLR 3.6索引.我有多个文本字段,我想以不同的方式加权.根据我的阅读,我应该可以使用dismax或edismax查询类型来完成此操作.我尝试过以下方法:

SolrQuery query = new SolrQuery();
query.setQuery( "title:apples oranges content:apples oranges");
query.setQueryType("edismax");
query.set("qf", "title^10.0 content^1.0");
QueryResponse rsp = m_Server.query( query );
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我尝试了以下变体来设置查询类型,但它似乎没有什么区别.

query.setQueryType("dismax");
query.set("qt","dismax");
query.set("type","edismax");
query.set("qt","edismax");
query.set("type","dismax");
Run Code Online (Sandbox Code Playgroud)

我想保留完整的Lucene查询语法,所以我更喜欢ExtendedDisMax到DisMax.在查询中提升单个术语(如下所示)确实有效,但不是有效的解决方案,因为查询是自动生成的,并且语法可以任意复杂.

query.setQuery( "title:apples^10.0 oranges^10.0 content:apples oranges");
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.

lucene search solr solrj

2
推荐指数
1
解决办法
6777
查看次数

标签 统计

lucene ×1

search ×1

solr ×1

solrj ×1