2012-10-17 20 views
0

因此,假设我想通过合并两个不同的morelikethis处理程序配置的输出来实现自定义morelikethis(或autosuggest)体验。 伪代码可能看起来像如何在内部使用solr处理程序?

class MyMoreLikeThis extends SearchHanlder { 
     def process(reqBuilder) { 
     val mlt1 = reBuilder.getComponent("/mlt1"); 
     val mlt2 = reBuilder.getComponent("/mlt2"); 
     val rb1 = reqBuilder.copy() 
     val rb2 = reqBuilder.copy() 
     reqBuilder.results = mlt1.process(rb1).getResults ++ mlt1.process(rb2).getResults 
     } 
    } 

或者也许我可以用solrj API从内部访问Solr的。

我该怎么做?有没有更好的方法来做到这一点?

回答

0

你可以参考已经详细的关于如何实现从类似于你在谈论这个问题不同的查询合并结果的解释下面的博客文章,

该博客由我的一位前同事撰写,他拥有多年的专业知识,包括搜索&信息检索。

+0

我喜欢第二个想法,因为它建议使用方便的solr4j API。但是它增加了序列化开销,并可能导致通过http进行递归。 第一个想法是关于如何编写CustomComponent而不是如何组合Solr组件...... – yura

相关问题