如何在内部使用solr处理程序?

如何在内部使用solr处理程序?,solr,search-engine,solrj,Solr,Search Engine,Solrj,因此,假设我想通过合并两个不同morelikethis处理程序配置的输出来实现定制morelikethis(或autosuggest)体验。 伪代码可能看起来像 class MyMoreLikeThis extends SearchHanlder { def process(reqBuilder) { val mlt1 = reBuilder.getComponent("/mlt1"); val mlt2 = reBuilder.getCompone

因此,假设我想通过合并两个不同morelikethis处理程序配置的输出来实现定制morelikethis(或autosuggest)体验。 伪代码可能看起来像

 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


我该怎么做?有更好的方法吗?

您可以参考下面的博客文章,其中详细解释了如何从不同的查询中获得合并结果,类似于您所讨论的问题


该博客由我的一位前同事撰写,他在搜索和信息检索方面有多年的专业经验。

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