如何使用来自不同核心的不同字段在Solr中进行搜索

时间:2018-07-13 09:16:18

标签: solr

使用分片,我们可以在多个内核中进行搜索

http://localhost:8983/solr/Core_2/select?shards=localhost:8983/solr/Core_2,localhost:8983/solr
  /Core_3&indent=true&q=Material_Number:"901751A/U" OR Material_type:"type1" 

这里我叫 Core_2 Core_3 ,其中以下是两个内核中可用的字段
1。物料编号
2。 Material_type


有可能使用核心之一中的字段进行搜索
EG。

  http://localhost:8983/solr/Core_2/select?shards=localhost:8983/solr/Core_2,localhost:8983/ 
    solr/Core_3&indent=true&q=Material_Number:"901751A/U" OR Material_type:"type1" OR
    field_of_Core_2:" search-text" OR field_of_Core_3:"search-text"

这会引发我错误

从上方,例如
1。 field_of_Core_2 Core_2
1中的字段。 field_of_Core_3 Core_3

中的字段

1 个答案:

答案 0 :(得分:0)

您要搜索的节点(即您要针对其进行查询的节点)必须了解两个模式中的所有字段-否则会给您一个未知的字段错误消息。

在您的情况下,应该对名为Common_Core或类似名称的内核进行查询,并且该内核必须具有同时定义了field_of_Core_2field_of_Core_3且正确的模式类型。

然后您将查询该新的通用核心:

http://localhost:8983/solr/Common_Core/select?shards=localhost:8983/solr/Core_2,localhost:8983/solr/Core_3 ...

您还可以在自定义请求处理程序中定义分片选择参数,以便任何查询都可以像使用其他任何核心(即Common_Core或其他任何东西一样使用customRequestHandlerNamehttp://localhost:8983/solr/Common_Core/sharded这样)。