2

スペル候補の「なし」を取得します。

settings.py に「INCLUDE_SPELLING」が含まれています: True

search_indexes.py

class JobIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    post_type = indexes.CharField(model_attr='post_type',faceted=True)
    job_location = indexes.CharField(model_attr='job_location',faceted=True)
    job_type = indexes.CharField(model_attr='job_type',faceted=True)
    company_name = indexes.CharField(model_attr='company_name',faceted=True)
    job_title = indexes.CharField(model_attr='job_title', faceted=True)
    start_date = indexes.DateField(model_attr='start_date', faceted=True)
    end_date = indexes.DateField(model_attr='end_date', faceted=True)
    job_description = indexes.CharField(model_attr='job_description', faceted=True)
    country = indexes.CharField(model_attr='country', faceted=True)
    suggestions = indexes.CharField()

    def prepare(self, obj):
        prepared_data = super(JobIndex, self).prepare(obj)
        prepared_data['suggestions'] = prepared_data['text']
        return prepared_data

    def get_model(self):
        return jobpost

インデックスを何度も再構築しました。

solrconfig.xml

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">

    <str name="queryAnalyzerFieldType">textSpell</str>

    <lst name="spellchecker">
      <str name="name">default</str>
      <str name="field">suggestions</str>
      <str name="spellcheckIndexDir">./spellchecker1</str>
      <str name="buildOnCommit">true</str>

    </lst>

<requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
      <str name="df">text</str>
      <str name="spellcheck.onlyMorePopular">false</str>
      <str name="spellcheck.extendedResults">false</str>
      <str name="spellcheck.count">1</str>
    </lst>
    <arr name="last-components">
      <str>spellcheck</str>
    </arr>
  </requestHandler>

schema.xml には提案フィールドが含まれています

<field name="suggestions" type="text_en" indexed="true" stored="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true" />

なぜ「なし」と表示されているのか、誰にもわかりますか?

4

1 に答える 1

2

さて、デモアプリで動作しました。

これが私のデモアプリで、solr conf ファイルが含まれています。

https://dl.dropboxusercontent.com/u/43002805/mysite.zip

これが私が使用しているものです。

ジャンゴ 1.5.1

ヘイスタック 2.0

Solr 4.3.0

まず、管理インターフェイスからサンプル データを追加します。次に、次を使用してsolrスキーマを構築します

python manage.py build_solr_schema > パス/to/solr/conf/dir/schema.xml

Solr Java サーバーを起動する

python manage.py rebuild_index

rebuild_index でバージョンフィールドに関するエラーが発生する場合は、これを schema.xml フィールド タグに追加します。

インデックスを再構築した後、この URL を 1 回ヒットしてスペル候補辞書を作成する必要があります

http://localhost:8983/solr/select?q=tes&spellcheck=true&spellcheck.collate=true&spellcheck.build=true

python manage.py ランサーバー

localhost:8000/jobs を使用して試してください

サンプル データに基づいて、views.py から検索クエリを変更します

于 2013-06-13T21:02:05.073 に答える