SOLR:带有嵌套文档的eDisMax

时间:2017-05-22 14:59:23

标签: solr edismax nested-documents

我们有一个电子书索引,其中包含电子书的元数据和每个页面作为单个文档:

  • 第1册
    • Page 1
    • Page 2
    • Page 3
    • ...
    • Page n

父文档包含字段is_parent:trueiddoc_id。 对于父文档,id与doc_id相同,对于id{doc_id}_{page_number}的子文档,doc_id。父项及其子项 'fl' => 'id,doc_id,main_type,title,subtitle,publishing_date,page_number,author,score', 'defType' => 'edismax', 'stopwords' => 'true', 'mm' => '1', 'qf' => 'id^10.0 title^50.0 subtitle^40.0 author^20.0', 'q' => 'TEST _query_:"{!parent which=is_parent:true score=Max}{!dismax qf='content' v='TEST'}"^20', 'sort' => 'score DESC' 始终相同(这就是我们知道哪个子项属于哪个子项)。

所以现在面临的挑战是提供全文搜索,使用eDisMax从父母元数据和儿童内容中找到搜索项目的最佳结果,并将它们与分数值相结合。

当前查询如下所示:

_query_

但似乎'_query_:"{!parent which=is_parent:true score=Max}{!dismax qf='content' v='TEST'}"^20',的分数未添加到主查询的分数中。另外,如果我在开头没有“TEST”术语的情况下执行此操作:'q'=> {{1}}我得到了一个得分值 - 所以得分就在那里,但我不确定如何正确使用它。

是否有其他选项可以使用组合分数进行嵌套搜索?

在问题出现之前为什么我们没有使用SOLR的嵌套文档功能:我们几年前使用SOLR 4.6创建了这个索引,此时此功能不存在。我们现在使用SOLR 5和SOLR 6的IndexUpdater工具将我们的索引更新为SOLR 6。

我们过去无法创建全文搜索,因为SOLR BlockJoin功能根本不支持分数计算,但在SOLR 5中有所改变,因此我们想再试一次。 正确方向的每一个提示都会有所帮助。

0 个答案:

没有答案