Edismax is considered Solr, although the same issue exists in the Lucene query parser.

-- Jack Krupansky

-----Original Message----- From: Markus Jelsma
Sent: Wednesday, November 28, 2012 8:50 AM
To: solr-user@lucene.apache.org
Subject: RE: positions and qf parameter in (e)dismax

I think i agree. Is this something that should be resolved in Solr or Lucene?

Thanks

-----Original message-----
From:Jack Krupansky <j...@basetechnology.com>
Sent: Tue 27-Nov-2012 17:47
To: solr-user@lucene.apache.org
Subject: Re: positions and qf parameter in (e)dismax

That is exactly the exception I would expect to see given your scenario. The
fact that the situation may have been silently ignored in the past was
surely an oversight that has since been corrected.

My proposal would be that if the query parser (actually the code that
generates PhraseQuery) encounters a phrase and the field does not have
positions, a BooleanQuery with MUST would be generated instead of the
PhraseQuery.

-- Jack Krupansky

-----Original Message----- From: Markus Jelsma
Sent: Tuesday, November 27, 2012 4:27 AM
To: solr-user@lucene.apache.org
Subject: RE: positions and qf parameter in (e)dismax

Hi - no we're not getting any errors because we enabled positions on all
fields that are also listed in the qf-parameter. If we don't, and send a
phrase query we would get an error such as:

java.lang.IllegalStateException: field "h1" 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:160)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:589)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:280)
at
org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1518)
at
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1265)
at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:384)
at
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:411)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:204)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1555)
at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:442)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:263)

We have fields in qf that we don't need to be searched for explicit phrase
queries so we'd like to omit positions, offsets and so on. But if we do,
we'll get the above error for explicit phrase queries.

Thanks


-----Original message-----
> From:Chris Hostetter <hossman_luc...@fucit.org>
> Sent: Tue 27-Nov-2012 02:15
> To: solr-user@lucene.apache.org
> Subject: Re: positions and qf parameter in (e)dismax
>
>
> : We do not want to store positions for some fields or omit term and
> : positions (or just tf) for other fields. Obviously we don't need/want
> : explicit phrase matching on the fields we want to configure without
> : positions, but (e)dismax doesn't let us. All text fields configured in
> : the QF parameter are eligible for explicit phrase matching and need to
> : have positions. We're looking for a way to disable what we don't need
> : and prevent Solr from searching fields for phrases that we don't want > to
> : be searched on.
>
> I'm not understanding the problem ... is there a specific error you are
> getting? can you please post that error along with your schema and an
> example of a request that triggers the problem?
>
> -Hoss
>



Reply via email to