use*_*871 4 apache search schema solr
我正在尝试用apache solr使用这个方案进行搜索http://pastie.org/5114389但是当我输入"josé"时,文件被找到但是当我写"jose"时我没有得到结果.
Efetuei在互联网上搜索答案并且必须使用该课程,但是当我插入时没有任何区别.
我从您的架构中看到您正在使用ASCIIFoldingFilterFactory
已text
分配给该default
字段的fieldType .但是,它仅适用于该字段的索引.我建议你也将它应用于查询你的字段,以确保你的查询字词被折叠以匹配索引中的项目.通常,在这样的情况下,当您将过滤器工厂添加到索引时,您还会将其添加到查询中,以便正确地转换/比较查询术语和索引术语.
所以我会将您的架构修改为以下内容:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)