Note that there are some explanatory texts on larger screens.

plurals
  1. POHaystack indexing error
    primarykey
    data
    text
    <p>I am trying to implement haystack <a href="https://django-haystack.readthedocs.org/en/latest/tutorial.html#installation" rel="nofollow">tutorial</a> : But i am facing problems :</p> <p>If i already have data in my DB and try to build index using :</p> <p><code>python manage.py rebuild_index</code> it gives the following error :</p> <pre><code>vaibhav@ubuntu:~/temp/HayStackDemo$ python manage.py rebuild_index -v2 WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'. Your choices after this are to restore from backups or rebuild via the `rebuild_index` command. Are you sure you wish to continue? [y/N] y Removing all documents from your index because you said so. All documents removed. Skipping '&lt;class 'django.contrib.auth.models.Permission'&gt;' - no index. Skipping '&lt;class 'django.contrib.auth.models.Group'&gt;' - no index. Skipping '&lt;class 'django.contrib.auth.models.User'&gt;' - no index. Skipping '&lt;class 'django.contrib.contenttypes.models.ContentType'&gt;' - no index. Skipping '&lt;class 'django.contrib.sessions.models.Session'&gt;' - no index. Skipping '&lt;class 'django.contrib.sites.models.Site'&gt;' - no index. Skipping '&lt;class 'django.contrib.admin.models.LogEntry'&gt;' - no index. Indexing 1 notes indexed 1 - 1 of 1 (by 30508). ERROR:root:Error updating demoApp using default Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 210, in handle_label self.update_backend(label, using) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 256, in update_backend do_update(backend, index, qs, start, end, total, self.verbosity) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 78, in do_update backend.update(index, current_qs) File "/usr/local/lib/python2.7/dist-packages/haystack/backends/elasticsearch_backend.py", line 155, in update prepped_data = index.full_prepare(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/indexes.py", line 196, in full_prepare self.prepared_data = self.prepare(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/indexes.py", line 187, in prepare self.prepared_data[field.index_fieldname] = field.prepare(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/fields.py", line 152, in prepare return self.convert(super(CharField, self).prepare(obj)) File "/usr/local/lib/python2.7/dist-packages/haystack/fields.py", line 73, in prepare return self.prepare_template(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/fields.py", line 129, in prepare_template t = loader.select_template(template_names) File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", line 193, in select_template raise TemplateDoesNotExist(', '.join(not_found)) TemplateDoesNotExist: search/indexes/demoApp/note_text.txt Traceback (most recent call last): File "manage.py", line 10, in &lt;module&gt; execute_from_command_line(sys.argv) File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 443, in execute_from_command_line utility.execute() File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/rebuild_index.py", line 15, in handle call_command('update_index', **options) File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 150, in call_command return klass.execute(*args, **defaults) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute output = self.handle(*args, **options) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 184, in handle return super(Command, self).handle(*items, **options) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 341, in handle label_output = self.handle_label(label, **options) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 210, in handle_label self.update_backend(label, using) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 256, in update_backend do_update(backend, index, qs, start, end, total, self.verbosity) File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 78, in do_update backend.update(index, current_qs) File "/usr/local/lib/python2.7/dist-packages/haystack/backends/elasticsearch_backend.py", line 155, in update prepped_data = index.full_prepare(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/indexes.py", line 196, in full_prepare self.prepared_data = self.prepare(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/indexes.py", line 187, in prepare self.prepared_data[field.index_fieldname] = field.prepare(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/fields.py", line 152, in prepare return self.convert(super(CharField, self).prepare(obj)) File "/usr/local/lib/python2.7/dist-packages/haystack/fields.py", line 73, in prepare return self.prepare_template(obj) File "/usr/local/lib/python2.7/dist-packages/haystack/fields.py", line 129, in prepare_template t = loader.select_template(template_names) File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", line 193, in select_template raise TemplateDoesNotExist(', '.join(not_found)) django.template.base.TemplateDoesNotExist: search/indexes/demoApp/note_text.txt </code></pre> <p>And if i remove all of the data and then try i get this :</p> <pre><code>vaibhav@ubuntu:~/temp/HayStackDemo$ python manage.py rebuild_index -v2 WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'. Your choices after this are to restore from backups or rebuild via the `rebuild_index` command. Are you sure you wish to continue? [y/N] y Removing all documents from your index because you said so. All documents removed. Skipping '&lt;class 'django.contrib.auth.models.Permission'&gt;' - no index. Skipping '&lt;class 'django.contrib.auth.models.Group'&gt;' - no index. Skipping '&lt;class 'django.contrib.auth.models.User'&gt;' - no index. Skipping '&lt;class 'django.contrib.contenttypes.models.ContentType'&gt;' - no index. Skipping '&lt;class 'django.contrib.sessions.models.Session'&gt;' - no index. Skipping '&lt;class 'django.contrib.sites.models.Site'&gt;' - no index. Skipping '&lt;class 'django.contrib.admin.models.LogEntry'&gt;' - no index. Indexing 0 notes </code></pre> <p>my search_indexes.py</p> <pre><code>import datetime from haystack import indexes from demoApp.models import Note #------------------------------------------------------------------------------ class NoteIndex(indexes.SearchIndex, indexes.Indexable): author = indexes.CharField(model_attr='user') pub_date = indexes.DateTimeField(model_attr='pub_date') text = indexes.CharField(document=True, use_template=True) def get_model(self): return Note def index_queryset(self, using=None): """Used when the entire index for model is updated.""" return self.get_model().objects.filter(pub_date__gte=datetime.datetime.now()) </code></pre> <p>I have also tried using this class and methods but nothing worked ..</p> <pre><code>import datetime from haystack import indexes from demoApp.models import Note #------------------------------------------------------------------------------ #All Fields class AllNoteIndex(indexes.ModelSearchIndex, indexes.Indexable): class Meta: model = Note </code></pre> <p>And this :</p> <pre><code>import datetime from haystack import indexes from demoApp.models import Note #------------------------------------------------------------------------------ class NoteIndex(indexes.SearchIndex, indexes.Indexable): author = indexes.CharField(model_attr='user') pub_date = indexes.DateTimeField(model_attr='pub_date') text = indexes.CharField(document=True, use_template=True) def get_model(self): return Note def load_all_queryset(self): # Pull all objects related to the Note in search results. return Note.objects.all().select_related() </code></pre> <p>But every time same issue. If i change the time zone setting in my project settings file and try to update or rebuild index again i get this error ....</p> <p>My DIR structure :</p> <pre><code>vaibhav@ubuntu:~/temp/HayStackDemo$ tree . ├── demoApp │   ├── __init__.py │   ├── __init__.pyc │   ├── models.py │   ├── models.pyc │   ├── search_indexes.py │   ├── search_indexes.pyc │   ├── templates │   │   └── search │   │   ├── indexes │   │   │   └── demoApp │   │   │   └── note_text.txt │   │   └── search.html │   ├── tests.py │   └── views.py ├── HayStackDemo │   ├── __init__.py │   ├── __init__.pyc │   ├── settings.py │   ├── settings.pyc │   ├── urls.py │   ├── urls.pyc │   ├── wsgi.py │   └── wsgi.pyc ├── manage.py └── sqlite.db </code></pre> <p>settings.py</p> <pre><code># Django settings for HayStackDemo project. DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', 'your_email@example.com'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 'NAME': '/home/vaibhav/temp/HayStackDemo/sqlite.db', # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. } } # Hosts/domain names that are valid for this site; required if DEBUG is False # See https://docs.djangoproject.com/en/1.4/ref/settings/#allowed-hosts ALLOWED_HOSTS = [] # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # In a Windows environment this must be set to your system time zone. TIME_ZONE = 'America/Chicago' #'Asia/Kolkata' # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'en-us' SITE_ID = 1 # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = True # If you set this to False, Django will not format dates, numbers and # calendars according to the current locale. USE_L10N = True # If you set this to False, Django will not use timezone-aware datetimes. USE_TZ = True # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = '' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = '' # Absolute path to the directory static files should be collected to. # Don't put anything in this directory yourself; store your static files # in apps' "static/" subdirectories and in STATICFILES_DIRS. # Example: "/home/media/media.lawrence.com/static/" STATIC_ROOT = '' # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/static/' # Additional locations of static files STATICFILES_DIRS = ( # Put strings here, like "/home/html/static" or "C:/www/django/static". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. ) # List of finder classes that know how to find static files in # various locations. STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', ) # Make this unique, and don't share it with anybody. SECRET_KEY = 'kg5kd%92#5*ybo-$92ci$u349s$1*xhmhnq68!oue%r=^fq#yz' # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 'django.template.loaders.eggs.Loader', ) MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) ROOT_URLCONF = 'HayStackDemo.urls' # Python dotted path to the WSGI application used by Django's runserver. WSGI_APPLICATION = 'HayStackDemo.wsgi.application' TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'haystack', 'demoApp', ) HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 'URL': 'http://127.0.0.1:9200/', 'INDEX_NAME': 'haystack', }, } # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error when DEBUG=False. # See http://docs.djangoproject.com/en/dev/topics/logging for # more details on how to customize your logging configuration. LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse' } }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' } }, 'loggers': { 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, }, } } </code></pre> <p>Can some please help me...</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload