안녕 메신저 :건초 더미 여러 필드 검색
class Person(models.Model):
personid = models.IntegerField(primary_key = True, db_column = 'PID')
firstname = models.CharField(max_length = 50, db_column = 'FIRSTNAME')
lastname = models.CharField(max_length = 50, db_column = 'LASTNAME')
class Meta:
db_table = '"TEST"."PERSON"'
managed = False
class TDoc(models.Model):
tdocid = models.IntegerField(primary_key = True, db_column = 'TDOCID')
person = models.ForeignKey(Person, db_column = 'PID')
content = models.TextField(db_column = 'CONTENT', blank = True)
filepath = models.TextField(db_column = 'FILEPATH', blank = True)
class Meta:
db_table = '"TEST"."TDOC"'
managed = False
search_index.py은 다음과 같다 다음과 같이
내 모델 같습니다
class TDocIndex(SearchIndex):
content = CharField(model_attr = 'content', document = True)
filepaht = CharField(model_attr = 'filepath')
person = CharField(model_attr = 'person')
def get_queryset(self):
return TDoc.objects.all()
def prepare_person(self, obj):
# Store a list of id's for filtering
return obj.person.lastname
site.register(TDoc, TDocIndex)
내 문제가 있습니다. 복수 신청 검색을하고 싶습니다.
내용 : xxx 및 사람 : SMITH
haystack에서는 특정 필드 검색을 한 번에 모두 검색 할 수 있습니다.
ix = open_dir("/testindex")
searcher = ix.searcher()
mparser = MultifieldParser(["content", "filepath", "person"], schema = ix.schema)
myquery = mparser.parse(content:xxx AND person:SMITH')
results = searcher.search(myquery)
for result in results:
print result
하지만, 작동 및 반환 올바른 값입니다 : 내 인덱스가 있지만 손상 의심. 난 당신이 문서 건초 더미가 검색 것이다 document=True
, 하나 개의 필드를 정의한다 색인에서 튜토리얼
(r'^search/', include('haystack.urls')),