2011-07-19 8 views
2

Solrの検索エンジンに少し問題があります。 「スーツ」という言葉を検索しても結果は返されません。私はそれが「スーツ」という言葉を含む文書であることを100%確信しています。私は「スーツ」という言葉を検索することができ、「スーツ」を含む結果が終わる。「Suits」という単語が含まれている文書がある場合、Solrは「suit」の結果を返さないのです

マイスキーマ:

<schema name="hello" version="1.3"> 
    <types> 
     <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> 
     <fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 
      <analyzer type="index"> 
       <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
       <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
       <filter class="solr.LowerCaseFilterFactory"/> 
       <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> 
       <filter class="solr.PorterStemFilterFactory"/> 
      </analyzer> 
      <analyzer type="query"> 
       <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
       <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
       <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
       <filter class="solr.LowerCaseFilterFactory"/> 
       <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> 
       <filter class="solr.PorterStemFilterFactory"/> 
      </analyzer> 
     </fieldType> 
    </types> 
    <fields> 
     <field name="id" type="string" indexed="true" stored="true" required="true" /> 
     <field name="title" type="text" indexed="true" stored="true" required="true"/> 
     <field name="description" type="text" indexed="true" stored="true" required="true"/> 
     <field name="profileMiniature" type="string" stored="true" required="true"/> 
    </fields> 
    <uniqueKey>id</uniqueKey> 
    <defaultSearchField>title</defaultSearchField> 
</schema> 

私のクエリは"title:$q*^2 description:$q*"です。

+0

私は、ステマーが2つのクエリーを同一にすると思います...ワイルドカードなしで試してみてください。 – wmorrell

+0

あなたは '*'を意味しますか?既にそれを試して、それは働いた!しかし、 '*'を使わないで部分的に単語を検索するにはどうすればいいですか? – einstein

+0

分析ページを使用して、索引付けされ検索された方法を知ろう – KaKa

答えて

2

ワイルドカードで検索すると分析が無効になります(hereと記載)。

suitsuitsを一致させるには、ワイルドカードではなくstemmingが必要です。データにsuitがあり、クエリがsuitsの場合、ワイルドカードを使用しても問題ありません。

ワイルドカードが必要な理由を説明するユースケースがありますか?それはあなたの問題に対するよりよい解決策を思いつくのに役立ちます。

関連する問題