2013-06-12 70 views
2

拼寫建議獲取「無」。拼寫建議顯示「無」乾草堆

settings.py包含 'INCLUDE_SPELLING':真

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 

rebuilded指數多次。

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" /> 

誰能告訴它爲什麼顯示 '無'?

+0

您正在使用哪種haystack版本? –

+0

haystack 2.0.1 .. –

回答

2

嗯,我得到它與演示應用程序的工作。

這是我的演示應用程序,包括solr conf文件。

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

這裏是我使用的是什麼。

的Django 1.5.1

草堆2.0

的Solr 4.3.0

首先通過管理界面添加樣本數據。 然後建立使用

蟒蛇manage.py build_solr_schema>路徑/到/ Solr的/ conf目錄/ DIR/schema.xml中

開始Solr的Java服務器

蟒蛇管理Solr模式。 py rebuild_index

如果rebuild_index給出錯誤版本場再加入這SCHEMA.XML領域標籤

重建索引之後,你必須一次打這個URL建立拼寫建議字典

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

蟒蛇manage.py runserver命令

嘗試使用localhost:8000/jobs

根據您的示例數據改變來自views.py的搜索查詢

+0

嘗試了一切,但它不工作 –

+0

我希望看到您的搜索模板,你正在使用拼寫建議。 –

+1

我像這樣展示他們{{suggestion}} –