很遺憾,haystack+ sphinx 沒有文件可以檢視,菜鳥們都安息了。還好有django-sphinx 。這玩意挺好!!!!
安裝:
django-sphinx , 這個現在已經是非常穩定的了,所以github上邊也不會再有任何新的發行版了,穩定才是最好的保障。所以直接pip install django-sphinx 安裝吧
d:\sphinx
然後直接建立乙個data資料夾 即d:\sphinx\data\ (在配置中使用的儲存索引的地方)
使用,這個超簡單的,下面是官方的用法說明
from djangosphinx.models importsphinxsearch
class
mymodel(models.model):
search = sphinxsearch() #
預設索引名是你的表名即model名
search = sphinxsearch('
index_name
') #
自己設定索引名
searchdelta =sphinxsearch(
index='
index_name delta_name',
weights=,
mode='
sph_match_all',
rankmode='
sph_rank_none',
)#以上是在model中使用
#下面是在views.py中使用查詢方法
queryset = mymodel.search.query('
query')
results1 = queryset.order_by('
@weight
', '
@id', '
my_attribute')
results2 = queryset.filter(my_attribute=5)
results3 = queryset.filter(my_other_attribute=[5, 3,4])
results4 = queryset.exclude(my_attribute=5)[0:10]
results5 = queryset.count()
下面介紹我在練習中使用的例子
from django.db importmodels
from djangosphinx.models import
sphinxsearch
class
chang(models.model):
title=models.charfield(max_length=200)
body=models.textfield()
tags=models.charfield(max_length=200)
search=sphinxsearch(index='
sphinxtest_chang
')
然後再view中使用
from model import changfrom django.shortcuts import render_to_response
defsearch(request):
if request.method == '
post':
query=request.post.get('
query
',none)
r=chang.search.query(query)
chang=list(r)
context=
else
: chang=list()
context=
return render_to_response('
search/search.html
',context)
再看我的templates\sphinxtest\search.html
doctype html
>
<
html
>
<
head
>
<
title
>
title
>
head
>
<
body
>
<
div>
<
form
action
="/search/"
method
="post"
>
<
input
type
="text"
name
="query"
/>
<
input
type
="submit"
>
form
>
<
p>your search for 「
<
strong
>}
strong
>
」 had <
strong
>}
strong
> results.
p>
<
p>search_meta object dump: }
p>
<
hr/>
<
h3>}
h3>
<
h4>}
h4>
<
p>(weight: })
p>
<
p>story.sphinx object dump: }
p>
div>
body
>
html
>
最後看看我的settings.py
'djangosphinx',
'sphinxtest',
...)
#sphinx 0.9.9
sphinx_api_version = 0x116
和urls.py配置
urlpatterns = patterns('',(r'^search/$
','sphinxtest.views.search'),
)
準備工作做完之後,我們開始建立索引吧
python manage.py generate_sphinx_config sphinxtest >> d:\sphinx\bin\sphinx.conf#這個本身sphinx.conf應該在d:\sphinx\下,我這樣位址會建立乙個新的,使用時也用他,不過這個是不完全的,建議直接參考d:\sphinx\下的sphinx-min.conf
直接上我的配置吧
source sphinxtest_changindex sphinxtest_chang
indexer
searchd
sphinx 建立索引
cd 到 d:\sphinx\bin\
indexer --config sphinx.conf sphinxtest_chang
開啟sphinx服務
cd 到 d:\sphinx\bin\
searchd --config sphinx.conf
最後執行程式,檢視結果吧,記得網資料庫中新增點資料哦,否則你建立出的索引是搜不到結果的。
django全文搜尋學習心得(三)whoosh 篇
基於djang haystack,咱們可以自由切換搜尋引擎了。whoosh 的使用跟solr 基本一樣 模板使用什麼的都是一樣的,主要是對whoosh 進行一些修改,讓其支援中文。settings.py 的配置 haystack connections 這裡邊使用主要參考 這篇文章,他給出了實際操作...
搜尋學習心得
在學習了眾多搜尋的方式後,不由感慨。啊,太巨了!今天huayucaiji我就給大家講一講c 搜尋的心得吧!深度優先搜尋 廣度優先搜尋 迭代加深搜尋 乙個乙個講吧!深度優先搜尋 下簡稱 深搜 簡稱dfs。是簡潔明瞭的搜尋方式,以遞迴的方式實現。比較簡單 好,廢話不多說,讓我們看一道題全排列問題 原題見...
Django的學習心得
初次接觸django模板,好多地方比較模糊,按著django官網給的學習6步驟,一步一步搞懂django,首先,咱們在命令列打下python c import django print django.get version 獲取django的版本號,此時django的版本號為1.8.2 命令列輸入 ...