Note that there are some explanatory texts on larger screens.

plurals
  1. POProblem adding to solr index from Django using zc.buildout
    text
    copied!<p>I'm trying to get Apache Solr running inside my zc.buildout environment.</p> <p>I've defined a simple model:</p> <pre><code>class NewsItem(models.Model): title = models.CharField(blank=False, max_length=255, help_text=u"Title of this news item") slug = models.SlugField(blank=False, help_text=u"Slug will be automatically generated from the title") article = models.TextField(help_text=u"The body text of this news item") created_on = models.DateTimeField(auto_now_add = True) updated_on = models.DateTimeField(auto_now = True) published = models.BooleanField(default=True) def __unicode__(self): return self.title </code></pre> <p>search_index.py:</p> <pre><code>import datetime from haystack.indexes import * from haystack import site from appname.models import * class NewsItemIndex(RealTimeSearchIndex): text = CharField(document=True, use_template=True) def get_queryset(self): """Used when the entire index for model is updated.""" return NewsItem.objects.all() site.register(NewsItem, NewsItemIndex) </code></pre> <p>And a <code>search_sites.py</code> defines:</p> <pre><code>import haystack haystack.autodiscover() </code></pre> <p>The settings file contains:</p> <pre><code>HAYSTACK_SITECONF = 'appname.search_sites' HAYSTACK_SEARCH_ENGINE = 'solr' HAYSTACK_SOLR_URL = 'http://127.0.0.1:8983/solr' HAYSTACK_SEARCH_RESULTS_PER_PAGE = 30 HAYSTACK_INCLUDE_SPELLING = True </code></pre> <p>'haystack' is listed in INSTALLED_APPS, pysolr is listed in the 'install_requires' in setup.py (offered by buildout)</p> <p>My buildout.cfg contains <code>solr-files</code>, <code>solr</code>, <code>solr-conf</code> and <code>supervisor</code>.</p> <p>I've added <code>${buildout:directory}/solr-conf</code> to the <code>[mkdir]</code> paths.</p> <p>The supervisor and solr sections in buildout.cfg look like this:</p> <pre><code>[supervisor] recipe = collective.recipe.supervisor port = localhost:9001 user = admin password = admin plugins = superlance # solr security settings: see # http://docs.codehaus.org/display/JETTY/Connectors+slow+to+startup programs = 10 solr (startsecs=10) java [-Djava.security.egd=file:/dev/urandom -jar start.jar] ${buildout:parts-directory}/solr true eventlisteners = SolrHttpOk TICK_60 ${buildout:bin-directory}/httpok [-p solr -t 20 http://localhost:8983/solr/] [solr-files] recipe = hexagonit.recipe.download url = ftp://mir1.ovh.net/ftp.apache.org/dist/lucene/solr/1.3.0/apache-solr-1.3.0.tgz md5sum = 23774b077598c6440d69016fed5cc810 strip-top-level-dir = true [solr] recipe = collective.recipe.solrinstance solr-location = ${buildout:parts-directory}/solr-files host = localhost port = 8983 unique-key = uniqueID default-search-field = text index = name:uniqueID type:string indexed:true stored:true required:true name:text type:string indexed:true stored:true required:false omitnorms:false multivalued:true [solr-conf] recipe = iw.recipe.cmd on_install = true on_update = true cmds = cp -v ${buildout:directory}/solr-conf/jetty.xml ${solr:jetty-destination} cp -v ${buildout:directory}/solr-conf/schema.xml ${solr:schema-destination} cp -v ${buildout:directory}/solr-conf/stopwords_fr.txt ${solr:schema-destination} [solr-rebuild] recipe = iw.recipe.cmd on_install = true on_update = true # since solr is not started by solr-instance but supervisord, solr-instance has # no pid file and thinks that solr is down. Thus we must run it with # solr-instance to be able to "solr-instance purge" cmds = ${buildout:bin-directory}/supervisorctl stop solr cp -v ${buildout:directory}/solr-conf/schema.xml ${solr:schema-destination} ${buildout:bin-directory}/solr-instance start COUNT=15; echo "Waiting $COUNT s"; sleep $COUNT ${buildout:bin-directory}/solr-instance purge time ${buildout:bin-directory}/${django:control-script} rebuild_index ${buildout:bin-directory}/solr-instance stop ${buildout:bin-directory}/supervisorctl start solr </code></pre> <p>When I run <code>$ bin/buildout install solr-rebuild</code>, I get the following output:</p> <pre><code>`/appname/solr-conf/schema.xml' -&gt; `/appname/parts/solr/solr/conf/schema.xml' Solr started with pid 16023 Waiting 15 s SimplePostTool: version 1.2 SimplePostTool: WARNING: Make sure your XML documents are encoded in UTF-8, other encodings are not currently supported SimplePostTool: POSTing args to http://localhost:8983/solr/update.. SimplePostTool: COMMITting Solr index changes.. WARNING: This will irreparably remove EVERYTHING from your search index. 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. Indexing 1 news items. Failed to add documents to Solr: [Reason: ERROR:unknown field 'django_ct'] 0.32user 0.05system 0:02.82elapsed 13%CPU (0avgtext+0avgdata 57872maxresident)k 160inputs+8outputs (3major+4257minor)pagefaults 0swaps Solr stopped successfully. </code></pre> <p>Similarly, running <code>$ bin/django rebuild_index</code> or <code>$ bin/buildout update_index</code> complains about 'django_ct': </p> <p><code>Failed to add documents to Solr: [Reason: ERROR:unknown field 'django_ct']</code></p> <p>(one thing I'm going to try is update solr to the latest version.. will report if that does it..)</p> <p>I'm not sure where to look next.. Searching google, groups and stackoverflow didn't get me past this point. Thanks in advance!</p>
 

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