django-haystack 및 solr을 검색 엔진으로 사용하여 사용자 이름, 이름, 성 또는 전자 메일 주소가 지정된 사용자 목록을 삭제하는 검색 엔진을 성공적으로 구현했습니다 질문.데이터베이스 개체를 검색 할 수 없도록 만듭니다.
search_indexes.py
그러나{{ object.username }}
{{ object.first_name }}
{{ object.last_name }}
{{ object.email }}
, 나는 사용자가 자신의 개인 정보 설정을 설정할 수 있도록 할 계획입니다
from haystack.indexes import *
from haystack import site
from django.contrib.auth.models import User
class UserIndex(SearchIndex):
text = CharField(document=True, use_template=True)
first_name = CharField(model_attr='first_name')
last_name = CharField(model_attr='last_name')
email = CharField(model_attr='email')
def index_queryset(self):
return User.objects.exclude(username='root')
site.register(User, UserIndex)
및
user_text.txt가 있도록 first_name, last_name 또는 이메일 주소로 검색 할 수 없습니다.
나는이 기능을 수행하는 데 며칠 동안 머리와 컴퓨터를 두들기는했지만 실제로 좋은 해결책을 찾지 못했습니다.
위의 기능을 모두 수행 할 수 있습니까?
대단히 감사합니다.
그것은 당신의 아키텍처에 따라 다릅니다 그들은 SOLR에 직접 액세스 할 수있는 경우, 또는 당신이 당신의 서버에 구축 한 서비스 계층을 통해 액세스합니다. – Eduardo
Eduardo가 말한 것과 같습니다. 그러나 이것이 컴퓨터 제품이 아니라 웹 서비스 인 경우 최종 사용자는 db에 액세스 할 수 없습니다. 클래스에서'searchable'이 새로운 필드 (db 애트리뷰트) 인 곳에'exclude (username = 'root'또는 searchable = False)'를 할 수 있습니다. 나는 그것이 작동해야한다고 생각합니다 ... 그리고 기본적으로,이 검색 쿼리의 목적에 따라, 당신은 그것을 검색 가능하게 만들지 않을 수 있습니다. 그 외, 내가 틀렸다면 나는 당신의 질문을 정말로 이해하지 못합니다 ... – CppLearner