0

drupal 7 環境で apache solr ベースの検索を構成しています。検索はapache solrを使用しており、機能していますが、私が望む方法ではありません。

「staff」などと入力すると、「staff」、「staffing」、「staffing」などの結果を希望します。

Apache サーバーを再起動し、drupal キャッシュをクリアし、インデックスをクリアし、すべてのコンテンツのインデックスを再作成しましたが、機能していません (「スタッフ」の全文などの結果しかありません)。

そのため、他のスタック オーバーフロー スレッドで提案されているように、schema.xml を更新していくつかの edgeNGramFilter を含めました。奇妙なことに、「スタッフ」を含む結果が 1 つ以上あります。しかし、「'staffing' のことですか?」をクリックすると、さらにいくつかの 'staffing' の結果が表示されます。

誰でも助けてもらえますか?

  <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="front" />
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="back" />    
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>  
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="front" />
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="back" />    
  </analyzer>
</fieldType>
4

2 に答える 2