Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A little confused about rebuild/update_index for Django-Haystack

I deleted a record from django app, then I followed it up with up with update_index and the record was still searchable. I then used rebuild_index and that seemed to work when I ran the search again. But I do not know if my computer stuttered or what but when I when to my django app all my records were gone. but I panicked hit the refresh button on the browser a couple of times and they reappeared. What I'd like to be clear on is this is, after I delete a record from my django app I run

./manage.py rebuild_index 

and when I add a record to my django app I do this

./manage.py update_index. 

Is this correct syntax? I do not want to inadvertently delete all my records from a lack of understanding the aforementioned commands thanks. The docs are not fully clear to me.

like image 642
losee Avatar asked Mar 21 '16 18:03

losee


1 Answers

Avoid using rebuild_index to remove deleted objects from search index.

When you run the rebuild_index command, all index is deleted/ cleared using clear_index and then updated using update_index under the hood.

Use update_index command to update your search index. To removed deleted objects, you can pass --remove argument to the command so that it effectively delete obsolete objects.

$ python manage.py update_index --remove

This command will remove deleted objects from index.

Read more @ haystack docs / management commands

like image 171
v1k45 Avatar answered Oct 21 '22 12:10

v1k45