如何使用copyField(solr4)创建可在多个字段中搜索的字段?

时间:2013-03-06 08:34:44

标签: solr solr4

我正在尝试配置copyField,但文档对语法示例非常清楚。

这是我尝试做的,但重新导入我的所有数据后,“all”字段没有文档:

   <field name="all" type="text_en_splitting" indexed="true" stored="false" multiValued="true" termVectors="true" version="1.5" />
   <copyField source="id" dest="all"/>
   <copyField source="item_name" dest="all"/>
   <copyField source="item_brand" dest="all"/>
   <copyField source="short_description" dest="all"/>
   <copyField source="long_description" dest="all"/>
   <copyField source="catalog_names" dest="all"/>
   <copyField source="categories" dest="all"/>
   <copyField source="keywords" dest="all"/>
   <copyField source="attributes" dest="all"/>

我真正需要的是:

我有定义了所有这些字段的文档(id,item_name,短/长描述等)。

我想搜索大多数字段,但不存储值(我只返回文档ID)。

所以:

  • 我是否需要为每个属性定义一个字段(item_name,short / long desc。等)?
  • 我应该将它们全部复制到一个字段中,以便搜索所有这些字段吗?这是必要的吗?
  • 我是否应该将所有这些字段导入一个solr字段?我的schema.xml应该怎么样?

我目前没有任何查看某个特定字段的搜索。

2 个答案:

答案 0 :(得分:1)

我是否需要为每个属性定义一个字段
如果要检索其值,则需要以任何方式定义所有字段。

我应该将它们全部复制到一个字段中,以便搜索所有这些字段吗?这是必要的吗? 您需要将它们复制到单个字段并搜索该字段。

有没有办法将所有这些字段导入一个solr字段?我的schema.xml应该怎么样?
您可以定义动态字段并使用单个副本字段将它们复制到单个字段

答案 1 :(得分:0)

似乎我在copyField中遇到的最大问题是我需要删除并重新加载索引才能启用它。添加替换现有文档的文档就足够了。