java - 将多个 SOLR 字段合并为一个

标签 java solr lucene

我有几个具有相似模式名称 (text_*) 的动态 Solr 字段,例如“文本_1”、“文本_2”、“文本_3”。我需要将所有这些属性组合成一个多值属性:["text_1", "text_2", "text_3"] 我尝试将下一种方法与模式结合使用:

 <dynamicField name="text_*" type="string" stored="true"/>
 <dynamicField name="allTexts"  class="solr.StrField" sortMissingLast="true" docValues="true" multiValued="true" stored="true"/>
 <copyField source="text_*" dest="allTexts"/>

但它不能作为 SOLR 面对错误:

 Can't load schema /opt/.../managed-schema: Dynamic field name 'allTexts' should have either a leading or a trailing asterisk, and no others.

也许还有其他方法可以通过字段名称模式将动态字段组合成一个多值字段?

最佳答案

您想定义一个常规字段,而不是一个动态字段(即您输入的字段)。

动态字段需要在名称中的某处出现通配符(因为这就是动态字段 - 它支持字段名称的通配符匹配)。

将其替换为

<field name="allTexts"  class="solr.StrField" sortMissingLast="true" docValues="true" multiValued="true" stored="true" />

关于java - 将多个 SOLR 字段合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57905463/

相关文章:

java - 尝试从正则表达式中的各个组获取数据失败

java - 隐藏 EditText 上的虚拟键盘焦点丢失

java - Apache Lucene createFullTextQuery 返回匹配的空对象

performance - 如何加速 Elasticsearch 恢复?

java - Lucene 索引大小

java - jPcap - 将数据包发送到选定的 MAC(而不是选定的接口(interface))

java - Android Recyclerview 元素重复

search - Google 喜欢使用 Solr 进行自动提示/预先输入(建议关键字/短语)

mysql - 如何使用MySQL全文搜索土耳其字符?

tomcat - 无法访问 Solr 管理面板 - HTTP 状态 403