使用Schema
下的Solr管理界面,我试图创建一个包含所有其他字段的全部复制字段。
在输入*
作为source
和search
作为destination
时,管理界面返回:
错误处理命令
如何创建用于搜索所有其他字段的全面复制字段?
答案 0 :(得分:0)
在您的schema.xml
中,您可以拥有以下字段:
<field name="destination" type="text" indexed="true" stored="true" required="false"/>
<field name="country" type="text" indexed="false" stored="true" required="false" />
<field name="city" type="text" indexed="false" stored="true" required="false" />
<field name="state" type="text" indexed="false" stored="true" required="false" />
country, city and state
是源字段。
然后可以将源字段添加到目标,如下所示:
<copyField source="city" dest="destination"/>
<copyField source="state" dest="destination"/>
<copyField source="country" dest="destination"/>
或者您也可以将诸如此类作为源字段
<field name="destination" type="text" indexed="true" stored="true" required="false"/>
<field name="country" type="text" indexed="false" stored="true" required="false">
<field name="city" type="text" indexed="false" stored="true" required="false" />
<copyField source="*_y" dest="destination"/>
您可以为字段destination
应用任何合适的字段类型
您还可以如下添加字段类型text
。这是一个示例供您参考。使用哪种字段类型以及使用哪种tokenizer
和使用filters
都取决于您的要求。
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>