Solr匹配字符串以
我已将数据库中的数据导入Solr以进行查询 数据样本如下所示Solr匹配字符串以,solr,Solr,我已将数据库中的数据导入Solr以进行查询 数据样本如下所示 NAMATJIRA,DRIVE,,WARAMANGA,ACT DOUGLAS WATERHOUSE,DRIVE,,DUNLOP,ACT WARDELL,DRIVE,,BARDEN RIDGE,NSW 在solr管理页面中,当我运行查询时 street_name:wa* AND street_name:drive* 我得到了上面所有的记录。有没有一种方法可以过滤,这样我只得到以WA开头的 更新:添加了架构信息 <field n
NAMATJIRA,DRIVE,,WARAMANGA,ACT
DOUGLAS WATERHOUSE,DRIVE,,DUNLOP,ACT
WARDELL,DRIVE,,BARDEN RIDGE,NSW
在solr管理页面中,当我运行查询时
street_name:wa* AND street_name:drive*
我得到了上面所有的记录。有没有一种方法可以过滤,这样我只得到以WA开头的
更新:添加了架构信息
<field name="street_name" type="text_general" indexed="true" stored="true"/>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
您用来分析该字段的类型将其标记为几个术语,因此
NAMATJIRA,DRIVE,,WARAMANGA,ACT
变成(一个包含多个术语的字段,然后可能也是小写等)
这就是查询匹配它的原因,因为其中一个值以“wa”开头
要解决这个问题,只需将字段的类型更改为使用关键字TokenizerFactory,它将所有内容保持为单个术语 向我们展示您的solr schemaChanged to KeywordTokenizerFactory(模式信息已更新,请参阅原始问题),但是,结果没有更改。您重新索引了吗?你需要
NAMATJIRA
DRIVE
WARAMANGA
ACT