My project in on Django 1.9, and haystack doesnt have a compatible release yet. I was working off master and then I realized that a bunch of boost support for elasticsearch was being removed. So I backported my project to 1.8 so I could use the 2.4.1 official release to see if I can get Document and Field boosting working. It seems to me that neither are working.
Here is what I am doing: from haystack.query import SearchQuerySet, SQ, AutoQuery search_term = 'C100' sqs = SearchQuerySet().models(Product).filter(SQ(text=AutoQuery(search_term )) | SQ(brand_name=search_term) ) for s in sqs: print s.boost, s.score, s.brand_name, ':', s.object.name And no matter how I define the indexes the score never changes. Here are three definitions I am trying and you can see the output of the above code in the class comment: class ProductIndex(CelerySearchIndex, indexes.Indexable): """ 1.5 0.84893364 Zacuto : Zacuto Recoil Shoulder Rig for C100, C100II & C300 1.5 0.84868896 Zacuto : Zacuto Z-Finder Pro for Canon C100 1.0 0.70724076 Zacuto : Zacuto Studio Baseplate with 12" Rods for C100/ C100II/C300/C500 1.0 0.70021886 Canon : Canon CA-930 Battery Charger for C100/C100II/C300/ C500 1.0 0.6494849 Anton Bauer : Anton Bauer QRC-CA940 Battery Plate for Canon C500, C300 & C100 1.0 0.6002867 Canon : Canon BP-970G Battery Pack for C100/C100II/C300/C500 2.0 0.5658623 Canon : Canon C100 Mark II Digital Cinema Camera EF Mount 1.5 0.4332277 Canon : Canon 100 f/2.8L IS Macro """ text = indexes.CharField(document=True, use_template=True) product_id = indexes.IntegerField(model_attr='id', null=False) brand_name = indexes.CharField(model_attr='brand__name', null=True, weight=1.75) def get_model(self): return models.Product def index_queryset(self, using=None): return self.get_model().objects.filter(is_active=True) def prepare(self, instance): data = super(ProductIndex, self).prepare(instance) data['boost'] = 1.5 # even weight everything if instance.is_camera: data['boost'] = 2.0 # weight cameras higher elif instance.is_accessory: data['boost'] = 1.0 # weight accessories lower return data class ProductIndex(CelerySearchIndex, indexes.Indexable): """ None 0.84893364 Zacuto : Zacuto Recoil Shoulder Rig for C100, C100II & C300 None 0.84868896 Zacuto : Zacuto Z-Finder Pro for Canon C100 None 0.70724076 Zacuto : Zacuto Studio Baseplate with 12" Rods for C100/C100II/C300/C500 None 0.70021886 Canon : Canon CA-930 Battery Charger for C100/C100II/C300/C500 None 0.6494849 Anton Bauer : Anton Bauer QRC-CA940 Battery Plate for Canon C500, C300 & C100 None 0.6002867 Canon : Canon BP-970G Battery Pack for C100/C100II/C300/C500 None 0.5658623 Canon : Canon C100 Mark II Digital Cinema Camera EF Mount None 0.4332277 Canon : Canon 100 f/2.8L IS Macro """ text = indexes.CharField(document=True, use_template=True) product_id = indexes.IntegerField(model_attr='id', null=False) brand_name = indexes.CharField(model_attr='brand__name', null=True, weight=5.0) def get_model(self): return models.Product def index_queryset(self, using=None): return self.get_model().objects.filter(is_active=True) class ProductIndex(CelerySearchIndex, indexes.Indexable): """ None 0.84893364 Zacuto : Zacuto Recoil Shoulder Rig for C100, C100II & C300 None 0.84868896 Zacuto : Zacuto Z-Finder Pro for Canon C100 None 0.70724076 Zacuto : Zacuto Studio Baseplate with 12" Rods for C100/ C100II/C300/C500 None 0.70021886 Canon : Canon CA-930 Battery Charger for C100/C100II/C300/ C500 None 0.6889441 Anton Bauer : Anton Bauer QRC-CA940 Battery Plate for Canon C500, C300 & C100 None 0.6002867 Canon : Canon BP-970G Battery Pack for C100/C100II/C300/C500 None 0.5658623 Canon : Canon C100 Mark II Digital Cinema Camera EF Mount None 0.4332277 Canon : Canon 100 f/2.8L IS Macro """ text = indexes.CharField(document=True, use_template=True) product_id = indexes.IntegerField(model_attr='id', null=False) brand_name = indexes.CharField(model_attr='brand__name', null=True) def get_model(self): return models.Product def index_queryset(self, using=None): return self.get_model().objects.filter(is_active=True) The score never changes despite document boost, or field boost against the non-boosted index. The haystack documentation says this stuff is supported, and I'm following the documentation example of how to query against boosted fields. Am I doing something entirely wrong? What else can I try to get this working? -- You received this message because you are subscribed to the Google Groups "django-haystack" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-haystack+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.