2011-06-02 67 views
10

我在我的项目中实施了solr搜索。 我有一个问题,关于如何搜索索引索引中创建的动态字段 例如: - 这是索引中形成的标签Solr search index for dynamic fields indexed

而我试图从solr中使用此查询Employee_ * = 172

如果搜索的方式不正确,请在此处帮助我。

回答

15

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

+1

感谢您的答复 – Selwyn 2011-06-03 09:50:10

7

这里有一个解决方法:

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

架构。 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" 

你甚至可以调整它,而不是存储/指数的动态字段(因为您可能无法在其上查询...)