如何在solr中匹配精确字符串和空格
这是我的solr模式文件代码如何在solr中匹配精确字符串和空格,solr,Solr,这是我的solr模式文件代码 <field name="exactName" type="lowercase" indexed="true" stored="false" multiValued="true"/> <copyField source="name" dest="exactName"/> <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100"
<field name="exactName" type="lowercase" indexed="true" stored="false" multiValued="true"/>
<copyField source="name" dest="exactName"/>
<fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
i指数数据:“Amit Patel”,“印度”
现在我想搜索如下数据:
印度
“印度”回答说,搜索很好
如果我想搜索
阿米特·帕特尔
如何搜索这个它给出了一个例外,如果我像那样搜索的话
阿米特+帕特尔
那么我也没有得到“amit patel”请建议我如何实现不区分大小写的精确搜索(带空格) 您实现它的方式应该还可以 规则是,如果只想匹配字段的精确值(但应用了可选过滤器),则可以使用
关键字标记器
。在应用任何筛选器之前,关键字标记器将整个输入作为单个标记保留
索引“Amit Patel”将输出一个标记“Amit Patel”,然后您可以对其应用小写过滤器,使最终结果为“Amit Patel”,最终得到您已经使用的定义:
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
记住也要在正确的字段中进行排序。如果您遇到异常,最好从异常开始,然后从异常开始反向工作。您的语法中没有任何内容会根据示例生成异常。copyField已超出字段定义。。。请再查一遍