Haystack Whoosh Django搜索引擎在本地工作,但不在生产环境中工作
使用Whosh2.7.4和Django Haystack版本2.5.dev1 我们有一个类似的设置,如下所述:Haystack Whoosh Django搜索引擎在本地工作,但不在生产环境中工作,django,django-haystack,whoosh,Django,Django Haystack,Whoosh,使用Whosh2.7.4和Django Haystack版本2.5.dev1 我们有一个类似的设置,如下所述: 设置.py WHOOSH_INDEX = os.path.join(PROJECT_ROOT, 'whoosh_index/') HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH':
WHOOSH_INDEX = os.path.join(PROJECT_ROOT, 'whoosh_index/')
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': WHOOSH_INDEX,
'INCLUDE_SPELLING': True,
},
}
def search_titles(request):
txt = request.POST.get('search_text', '')
if txt:
articles = SearchQuerySet().autocomplete(content_auto=txt)
# if the post request is empty, return nothing
# this prevents internal server error with jquery
else:
articles = []
return render_to_response('ajax_search.html', {'articles': articles})
def articles(request):
language = 'en-gb'
session_language = 'en-gb'
if 'lang' in request.COOKIES:
language = request.COOKIES['lang']
if 'lang' in request.session:
session_language = request.session['lang']
args = {}
args.update(csrf(request))
args['articles'] = Article.objects.all()
args['language'] = language
args['session_language'] = session_language
return render_to_response('index.html', args)
ajax.js
$(function(){
$('#search').keyup(function() {
$.ajax({
type: "POST",
url: "/search/",
data: {
'search_text' : $('#search').val(),
'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
},
success: searchSuccess,
dataType: 'html'
});
});
});
function searchSuccess(data, textStatus, jqXHR)
{
$('#search-results').html(data);
}
视图.py
WHOOSH_INDEX = os.path.join(PROJECT_ROOT, 'whoosh_index/')
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': WHOOSH_INDEX,
'INCLUDE_SPELLING': True,
},
}
def search_titles(request):
txt = request.POST.get('search_text', '')
if txt:
articles = SearchQuerySet().autocomplete(content_auto=txt)
# if the post request is empty, return nothing
# this prevents internal server error with jquery
else:
articles = []
return render_to_response('ajax_search.html', {'articles': articles})
def articles(request):
language = 'en-gb'
session_language = 'en-gb'
if 'lang' in request.COOKIES:
language = request.COOKIES['lang']
if 'lang' in request.session:
session_language = request.session['lang']
args = {}
args.update(csrf(request))
args['articles'] = Article.objects.all()
args['language'] = language
args['session_language'] = session_language
return render_to_response('index.html', args)
我们尝试通过manage.py重建和更新索引,但没有给出任何结果。我们还确保Django Haystack和whoosh模块的生产版本和本地版本是相同的
有什么想法吗?任何形式的帮助都将不胜感激!:) 定义“不起作用”。错误结果、无结果、错误消息?定义“不工作”。错误结果、无结果、错误消息?