django-haystack returning unexpected results
up vote
0
down vote
favorite
I am trying to integrate django-haystack on a blog.
Here is my Post model:
class Post(models.Model):
slug = models.CharField(max_length=2000)
title = models.CharField(max_length=2000)
content = models.TextField(blank=True)
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
def __str__(self):
return self.title
Here is the how code in search_indexes.py file:
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
content = indexes.CharField(model_attr='content')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(created_on__lte=datetime.datetime.now())
As you can see, I am using EdgeNgramField type to search for partial terms.
Now if I search for the term elastic, as expected, haystack returns post containing elastic somewhere either title or content field. However, haystack also returns some additional posts which do not have the term elastic neither in title or nor in content.
How can I fix this?
I have tested this code on: django-haystack (2.8.1), elasticsearch-2.4.2, and django-1.11
PS: This is my first encounter with elastic search.
python django
add a comment |
up vote
0
down vote
favorite
I am trying to integrate django-haystack on a blog.
Here is my Post model:
class Post(models.Model):
slug = models.CharField(max_length=2000)
title = models.CharField(max_length=2000)
content = models.TextField(blank=True)
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
def __str__(self):
return self.title
Here is the how code in search_indexes.py file:
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
content = indexes.CharField(model_attr='content')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(created_on__lte=datetime.datetime.now())
As you can see, I am using EdgeNgramField type to search for partial terms.
Now if I search for the term elastic, as expected, haystack returns post containing elastic somewhere either title or content field. However, haystack also returns some additional posts which do not have the term elastic neither in title or nor in content.
How can I fix this?
I have tested this code on: django-haystack (2.8.1), elasticsearch-2.4.2, and django-1.11
PS: This is my first encounter with elastic search.
python django
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am trying to integrate django-haystack on a blog.
Here is my Post model:
class Post(models.Model):
slug = models.CharField(max_length=2000)
title = models.CharField(max_length=2000)
content = models.TextField(blank=True)
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
def __str__(self):
return self.title
Here is the how code in search_indexes.py file:
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
content = indexes.CharField(model_attr='content')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(created_on__lte=datetime.datetime.now())
As you can see, I am using EdgeNgramField type to search for partial terms.
Now if I search for the term elastic, as expected, haystack returns post containing elastic somewhere either title or content field. However, haystack also returns some additional posts which do not have the term elastic neither in title or nor in content.
How can I fix this?
I have tested this code on: django-haystack (2.8.1), elasticsearch-2.4.2, and django-1.11
PS: This is my first encounter with elastic search.
python django
I am trying to integrate django-haystack on a blog.
Here is my Post model:
class Post(models.Model):
slug = models.CharField(max_length=2000)
title = models.CharField(max_length=2000)
content = models.TextField(blank=True)
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
def __str__(self):
return self.title
Here is the how code in search_indexes.py file:
class PostIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
content = indexes.CharField(model_attr='content')
def get_model(self):
return Post
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(created_on__lte=datetime.datetime.now())
As you can see, I am using EdgeNgramField type to search for partial terms.
Now if I search for the term elastic, as expected, haystack returns post containing elastic somewhere either title or content field. However, haystack also returns some additional posts which do not have the term elastic neither in title or nor in content.
How can I fix this?
I have tested this code on: django-haystack (2.8.1), elasticsearch-2.4.2, and django-1.11
PS: This is my first encounter with elastic search.
python django
python django
asked yesterday
Cody
87311231
87311231
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204321%2fdjango-haystack-returning-unexpected-results%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password