我已经导入了一个 csv 文件,其中包含一个字段“地址”,其中包含多个单词,中间有空格”,例如地址包含“23 delhi ST KANGAROO POINT”、“23/50 BANGALORE ST KANGAROO POINT”等。
我想用“23”、“23 del”、“23/50”、“23/50 banga”等进行搜索。在 managed.schema 文件中,我添加了
<field name="Address" type="text_general" indexed="true" stored="true"/>
<field name="Suburb" type="text_general" indexed="true" stored="true"/>
<field name="StreetNo" type="text_general" indexed="true" stored="true"/>
<field name="HouseNo" type="text_general" indexed="false" stored="false"/>
其中 Suburb、StreetNo、HouseNo 是其他字段。我可以使用“23”“del”等进行搜索,但不能在两者之间使用空格。我正在使用 Solr6.4。
我正在使用默认的 text_general 类型配置。
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
此外,更改架构后,我是否需要重新导入 csv 文件或一切都会自动处理?