gpt4 book ai didi

java - 将多值字段添加到 SolrInputDocument

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:01 25 4
gpt4 key购买 nike

我们正在使用 Java SolrJ 的 solr 嵌入式实例。

我想向文档中添加一个多值字段。多值字段是逗号分隔的字符串。

在 Java 中我想做的是:

solrInputDocument.addField(Field1, "value1,value2,value3");

schema中Field1的定义如下

<field name="Field1" type="multiValuedField"   indexed="true"  stored="true"  multiValued="true" required="false"/>

<fieldType name="multiValuedField" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.ClassicTokenizerFactory"/>
</analyzer>
</fieldType>

有了这个配置,我们期望当我们调用 addField 方法时,Solr 能够检查它是否是一个 multiValuedField,因此它将 String 转换为具有不同值的 arrayList。

相反,我们得到一个只有一个值的数组列表,该值实际上是添加到文档中的原始字符串。

问题:应该由分词器来处理这个问题,还是应该在向文档添加多值字段时由我们自己来处理?

谢谢。

最佳答案

addField SolrInputDocument 的方法接受一个字符串和一个对象。因此,要处理多值字段,您可以传入一个 ArrayList,其中包含您想要的第二个参数值,SolrJ 将相应地更新多值字段:

String[] valuesArray = {"value1", "value2", "value3"};
ArrayList<String> values = new ArrayList<String>(Arrays.asList(valuesArray));
solrInputDocument.addField("Field1", values);

关于java - 将多值字段添加到 SolrInputDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com