【问题标题】:How do I use copyField (solr4) to create a field that's searchable across multiple fields?如何使用 copyField (solr4) 创建可跨多个字段搜索的字段?
【发布时间】:2013-03-06 08:34:43
【问题描述】:

我正在尝试配置 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、短/长描述等)定义一个字段?
  • 是否应该将它们全部复制到一个字段中,以便在所有这些字段中进行搜索?这是必要的吧?
  • 有没有一种方法可以将所有这些字段导入到一个 solr 字段中?我的 schema.xml 应该是什么样子?

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

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,几乎每次您对 schema.xml 文件进行更改时,在重新加载文档之前,这些更改都不会反映在索引文档中。
      猜你喜欢
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多