В вашем 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>