Sorry, but phrase queries really are dependent on position information, by
definition. So, if you want phrase query, don't omit position info.
Yeah, the wiki should be updated to note that change about non-silent
failure.
-- Jack Krupansky
-----Original Message-----
From: Fredrik Rødland
Sent: Monday, March 04, 2013 6:14 AM
To: solr-user@lucene.apache.org
Cc: Finn - Teamsearch ; Kolstad Christopher
Subject: Trouble with phrase-queries on fields with omitTermFreqAndPositions
(upgrading from 3.6.X to 4.1)
We've been trying to get our heads around this for some days now upgrading
from 3.6 (where we didn't see this error) to 4.1 (where this error is very
prominent.
We have upgraded from SOLR 3.6.1 to 4.1 and get the following error:
INFO [2013.03.04 09:22:40] http-12200-2 org.apache.solr.core.SolrCore -
[finn] webapp=/solr path=/select params={q=audi+a6&wt=json} status=500
QTime=14
ERROR [2013.03.04 09:22:40] http-12200-2
org.apache.solr.servlet.SolrDispatchFilter -
null:java.lang.IllegalStateException: field "name" was indexed without
position data; cannot run PhraseQuery (term=a)
at
org.apache.lucene.search.PhraseQuery$PhraseWeight.scorer(PhraseQuery.java:274)
at
org.apache.lucene.search.DisjunctionMaxQuery$DisjunctionMaxWeight.scorer(DisjunctionMaxQuery.java:161)
<name> is a field which has omitTermFreqAndPositions="true" for several
reasons.
We ran into several issues:
1. <name> was defined in our PF in our request handler (edismax)
=> resolution: delete it from PF
2. <name> has WordDelimiterFilter, and fails because WDF creates a phrase
behind the scenes.
=> resolution: update schema to >= 1.4 and add
autoGeneratePhraseQueries="true" to all other fields or types but <name>
(phuu)
3. excplicit phrase-queries fail. e.g a search for "audi oslo" fails with
the error above.
=> no resolution - other than stop using omitTermFreqAndPositions
from
http://wiki.apache.org/solr/SchemaXml#Schema_version_attribute_in_the_root_node
omitTermFreqAndPositions=true|false <!> Solr1.4
"...Queries that rely on position that are issued on a field with this
option will silently fail to find documents."
This doesn't seem very silent to me. We get a 500 error from SOLR.
Does anyone out there have any resolutions or tips for this problem. We
really wish to still have the field defined with omitTermFreqAndPositions,
have it defined in our qf and support phrases for the end user.
On a side note: Jan Høydals excellent auto-complete solution:
http://www.cominvent.com/2012/01/25/super-flexible-autocomplete-with-solr/
https://github.com/cominvent/autocomplete/commits/master
also suffers from this - phrases are no longer supported, as noted in:
http://stackoverflow.com/questions/10063318/solr-autocomplete-based-on-edismax-type-error
Regards,
Fredrik
--
Fredrik Rødland Mail: fred...@rodland.no
Cell: +47 99 21 98 17
Twitter: @fredrikr
Maisen Pedersens vei 1 Flickr: http://www.flickr.com/fmmr/
NO-1363 Høvik, NORWAY Web: http://about.me/fmr