from haystack import indexes
from haystack import site

from publicbody.models import PublicBody


class PublicBodyIndex(indexes.SearchIndex):
    text = indexes.CharField(document=True, use_template=True)
    name = indexes.CharField(model_attr='name')
    geography = indexes.CharField(model_attr='geography')
    topic_auto = indexes.EdgeNgramField(model_attr='topic')
    name_auto = indexes.EdgeNgramField(model_attr='name')
    url = indexes.CharField(model_attr='get_absolute_url')

    def get_queryset(self):
        """Used when the entire index for model is updated."""
        return PublicBody.objects.get_for_search_index()

    

site.register(PublicBody, PublicBodyIndex)

from haystack import indexes
from haystack import site

from publicbody.models import PublicBody


class PublicBodyIndex(indexes.SearchIndex):
    text = indexes.EdgeNgramField(document=True, use_template=True)
    name = indexes.CharField(model_attr='name')
    geography = indexes.CharField(model_attr='geography')
    topic_auto = indexes.EdgeNgramField(model_attr='topic')
    name_auto = indexes.EdgeNgramField(model_attr='name')
    url = indexes.CharField(model_attr='get_absolute_url')

    def get_queryset(self):
        """Used when the entire index for model is updated."""
        return PublicBody.objects.get_for_search_index()


site.register(PublicBody, PublicBodyIndex)

Make Public Body document search an EdgeNgram Field to improve search
Make Public Body document search an EdgeNgram Field to improve search
  from haystack import indexes
  from haystack import site
  
  from publicbody.models import PublicBody
  
  
  class PublicBodyIndex(indexes.SearchIndex):
-     text = indexes.CharField(document=True, use_template=True)
+     text = indexes.EdgeNgramField(document=True, use_template=True)
      name = indexes.CharField(model_attr='name')
      geography = indexes.CharField(model_attr='geography')
      topic_auto = indexes.EdgeNgramField(model_attr='topic')
      name_auto = indexes.EdgeNgramField(model_attr='name')
      url = indexes.CharField(model_attr='get_absolute_url')
  
      def get_queryset(self):
          """Used when the entire index for model is updated."""
          return PublicBody.objects.get_for_search_index()
  
-     
  
  site.register(PublicBody, PublicBodyIndex)
  
Make Public Body document search an EdgeNgram Field to improve search
## Code Before:
from haystack import indexes
from haystack import site

from publicbody.models import PublicBody


class PublicBodyIndex(indexes.SearchIndex):
    text = indexes.CharField(document=True, use_template=True)
    name = indexes.CharField(model_attr='name')
    geography = indexes.CharField(model_attr='geography')
    topic_auto = indexes.EdgeNgramField(model_attr='topic')
    name_auto = indexes.EdgeNgramField(model_attr='name')
    url = indexes.CharField(model_attr='get_absolute_url')

    def get_queryset(self):
        """Used when the entire index for model is updated."""
        return PublicBody.objects.get_for_search_index()

    

site.register(PublicBody, PublicBodyIndex)

## Instruction:
Make Public Body document search an EdgeNgram Field to improve search
## Code After:
from haystack import indexes
from haystack import site

from publicbody.models import PublicBody


class PublicBodyIndex(indexes.SearchIndex):
    text = indexes.EdgeNgramField(document=True, use_template=True)
    name = indexes.CharField(model_attr='name')
    geography = indexes.CharField(model_attr='geography')
    topic_auto = indexes.EdgeNgramField(model_attr='topic')
    name_auto = indexes.EdgeNgramField(model_attr='name')
    url = indexes.CharField(model_attr='get_absolute_url')

    def get_queryset(self):
        """Used when the entire index for model is updated."""
        return PublicBody.objects.get_for_search_index()


site.register(PublicBody, PublicBodyIndex)
