0

Heroku アプリでWebsolrをセットアップしようとしています。Heroku docsの指示に従っています。初期設定がうまくいきました。

開発中:

ruby-1.9.2-p0 > Note.search { keywords 'grit' }.results.length
 => 3

ステミングを追加しようとしています。schema.xml ファイルの関連部分を次のように更新しました。

<fieldType name="text" class="solr.TextField" omitNorms="false">

  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.PorterStemFilterFactory"/>
  </analyzer>

</fieldType>

次に、インデックスを再作成しました:

$ rake sunspot:reindex

しかし、まったく機能していないようです:

ruby-1.9.2-p0 > Note.search { keywords 'gri' }.results.length
 => 0

私は何を間違っていますか?

4

1 に答える 1

2

ここで 2 つのアイデアがあります。

まず、変更後にSolrを再起動するかどうかについて言及していませんでしたschema.xml。では、変更を有効にするために Solr を再起動しますか? :)

次に、この用語がPorter ステミング アルゴリズムの下で削除されるgrit資格があるかどうか疑問に思っています。確実にするには、 PorterStemmer アルゴリズムtをよく読む必要があります。しかし、もっと明白な例をいくつか試すこともできます (たとえば、to )。writingwrite

于 2011-03-17T05:32:04.627 に答える