我在Solr的一份文件Lat
和Lng
领域。 我需要添加一个名为新场store
包含无论从获取的数据Lat
和Lng
。 我试图用copyField
场,但我得到了错误:
字段存储不多值和目的地为多个copyFields(2)
下面是我的配置:
<fields>
<field name="lat" type="sdouble" indexed="true" stored="true" required="true" multiValued="false" />
<field name="lng" type="sdouble" indexed="true" stored="true" required="true" multiValued="false" />
<field name="store" type="text" indexed="true" stored="true"/>
</fields>
<copyField source="lat" dest="store"/>
<copyField source="lng" dest="store"/>
是否有可能同一个目的地领域内的两个字段的内容复制?
也许是过时的,但你可以使用“updateRequestProcessorChain”
<updateRequestProcessorChain name="composite-position">
<processor class="solr.CloneFieldUpdateProcessorFactory">
<str name="source">lat</str>
<str name="source">lng</str>
<str name="dest">store</str>
</processor>
<processor class="solr.ConcatFieldUpdateProcessorFactory">
<str name="fieldName">store</str>
<str name="delimiter">;</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
以你的问题没有上下文:
是否有可能同一个目的地领域内的两个字段的内容复制?”
答案是肯定的,当然。 示例模式这是否与多个字段复制到一个共同的“文本”字段(多值),使一个简单的现场搜索。
但看多情况下,你实际上是试图做的是确定是否Solr的用copyField schema.xml中可以输入对字段(纬度和经度,你的情况),并与中间的逗号,以某一特定领域将它们连接起来。 答案是不。 你必须把它给Solr的时候准备数据这种方式,或者,如果您使用的是DIH(在DataImportHandler)使用DIH变压器。 我毫不犹豫地提出一种替代,但作为一个黑客,你可以尝试把纬度和经度为store_0_coordinate和store_1_coordinate(或者也许是周围的其他方法)。 不过说真的,这是不是即使它可能工作一推荐的方法。
你可以尝试设置store
为multivalued
<field name="store" type="location" indexed="true" stored="true" multiValued="true" />
你可以尝试这样的事情:
两个在一个位置双
如果你可以使用DIH(数据处理程序进口)。 希望泰德将帮助!