Solr搜索查询动态字段索引

11

我正在我的项目中实现Solr搜索。我有一个关于如何搜索创建在Solr索引中的动态字段的问题。

例如:以下是在索引中形成的标签

我正在尝试使用此查询从Solr搜索 Employee_* = 172,请帮助我确认是否正确。

2个回答

15

在查询中,您需要明确定义要搜索的具体字段,例如Employee_aEmployee_b(或者您使用的任何动态字段)。您不能通过在查询中的字段名称中使用通配符来搜索所有动态字段。


8

以下是一种解决方法:

  • 创建一个(静态)copyField
  • 将动态字段复制到(静态)copyField中
  • 查询copyField

您的schema.xml可能如下所示:

   <dynamicField name="Employee_*" type="string" indexed="true"  stored="true"/>
   <field name="emp_static"  type="string" indexed="true"  stored="true" multiValued="true"/>
   <copyField source="Employee_*"    dest="emp_static"/>

现在你可以通过以下方式查询solr:
select?q=emp_static:"172"

你甚至可以调整它,不存储/索引动态字段(因为你可能不会查询它...)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接