2011-09-20 102 views
1

我在solr搜索中遇到了一个问题....通配符搜索似乎工作正常,但是当我试图在另一个词中查找词时会出现问题.....例如:“rtebiggestBug”,当我搜索最大的,它并没有给任何results.I必须在Schema.xml文件Solr WildCard搜索问题

<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <!-- in this example, we will only use synonyms at query time 
     <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> 
     --> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> 
    <!-- <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>--> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <!-- <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> --> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
     <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" preserveOriginal="1"/> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> 
    <!-- <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>--> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <!-- <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>--> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
     </analyzer> 
    </fieldType> 

的另一个问题是由以下项目,它没有找到在端线的词。例如:我搜索了“bug”,发现了错误,而不是“samplebug”。

这将是非常有益的,如果你能帮助我在这个问题上..

在此先感谢。

+0

关于Solr通配符问题,附加提示:http://stackoverflow.com/questions/1974394/apache-solr-search-part-of-the-word/1976045#1976045 –

回答

0

看来你的查询分析器不能处理领导通配符搜索。

你正在使用什么查询分析器?

扩展的dismax查询解析器支持使用前导通配符的搜索。你想检查它。