5
부분 일치 단어 일치를 시도하고 있는데 이미 related question을 보았습니다. 그러나 어떤 이유로 내 설정이 작동하지 않습니다. 나는 elasticsearch와 함께 건초 더미를 사용하고 있습니다. 누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?haystack/elasticsearch를 사용하여 부분 단어 검색을 수행 할 수 없습니다.
class VendorIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
company_name = indexes.CharField(model_attr='company_name', null=True)
def get_model(self):
return Vendor
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
편집 : 자동 완성 기능을 사용하여이 작업을 수행했습니다. 그러나, 나는 이것이 해킹 인 것 같은 기분이 든다. 보기에서 다음
class VendorIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
company_name = indexes.CharField(model_attr='company_name', null=True)
company_name_auto = indexes.NgramField(model_attr='company_name')
def get_model(self):
return Vendor
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
: 내 경우
class SearchVendorView(generics.ListAPIView):
serializer_class = serializers.CustomerVendorSerializer
def get_queryset(self):
results = SearchQuerySet().models(Vendor).autocomplete(company_name_auto=self.request.GET.get('q', ''))
vendors = []
for vendor in [result.object for result in results]:
vendor.is_liked = Vendor.objects.from_request(self.request).get(pk=vendor.id).user_vote
vendors.append(vendor)
return vendors
이것이'elasticsearch 1.x'에서 작동하는지 알고 계십니까? –
Nathan, 아니, 결코 사용자 elasticsearch v.1. – valex