这是我的solr架构文件代码
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
<dependency>
<groupId>org.primefaces.themes</groupId>
<artifactId>all-themes</artifactId>
<version>1.0.10</version>
</dependency>
和我索引数据:“ Amit Patel ”,“ india ”
现在我想搜索数据:
印度
它的搜索很好,返回“印度”
如果我想搜索
amit patel
如何搜索此给出的异常,如果我像那样搜索
阿米特+巴特尔
然后我也没有得到“ amit patel ”请建议我如何实现不区分大小写的精确搜索(带空格)?
答案 0 :(得分:1)
你实施它的方式应该没问题。
规则是,如果您只想匹配字段的确切值(但应用了可选的过滤器),则可以使用KeywordTokenizer
。在应用任何过滤器之前,关键字标记器将整个输入保持为单个标记。
索引“Amit Patel”将输出一个单一的标记“Amit Patel”,然后您可以应用LowercaseFilter,最终结果为“amit patel”,最终得到您已经使用的定义:
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
请记住也要在正确的字段中排序。如果你得到一个例外,那么从异常开始并从那里开始向后工作是个好主意。语法中没有任何内容可以从您的示例中生成异常。