gpt4 book ai didi

python - Django Haystack Elasticsearch返回开发服务器上的所有内容,但可在Shell中运行

转载 作者:行者123 更新时间:2023-12-02 22:41:53 25 4
gpt4 key购买 nike

在本地计算机上安装elasticsearch服务器并运行开发服务器后,我发现任何查询都会返回每个索引。但是,当我检入shell以确保所有内容都正确索引后,它就可以正常工作了。当我强制haystack.views.SearchView返回查询结果时,问题仍然存在:

class SearchView(object):
template = 'search/search.html'
extra_context = {}
query = ''
results = EmptySearchQuerySet()
request = None
form = None
results_per_page = RESULTS_PER_PAGE

def get_results(self):
return SearchQuerySet().auto_query('john')

返回每个索引数据到模板。

另一方面:
$ ./manage.py shell
>>> from haystack.query import SearchQuerySet
>>> SearchQuerySet().all()
[<SearchResult: custom_user.user (pk=u'1')>, <SearchResult: custom_user.user (pk=u'2')>, <SearchResult: custom_user.user (pk=u'3')>, u'...(remaining elements truncated)...']
>>> SearchQuerySet().auto_query('john')
[<SearchResult: custom_user.user (pk=u'1')>]

如果有必要的话,我正在使用GAE dev_appserver.py。以下是我使用的其他文件。

myapp / settings.py
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://localhost:9200/',
'INDEX_NAME': 'haystack',
},
}

custom_user / search_indexes.py
# -*- coding: utf-8 -*-
from haystack import indexes

from .models import User


class UserIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
username = indexes.CharField(model_attr='username')
nickname = indexes.CharField(model_attr='nickname')

def get_model(self):
return User

def index_queryset(self, using=None):
return self.get_model().objects.filter(is_active=True).order_by('nickname')

最佳答案

我认为您如何设置 View 并从干草堆继承可能存在问题。您可以逐字尝试以下内容:

from haystack.views import SearchView
from haystack.query import SearchQuerySet
class MySearchView(SearchView):

def get_results(self):
return SearchQuerySet().auto_query('john')

关于python - Django Haystack Elasticsearch返回开发服务器上的所有内容,但可在Shell中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com