If the "OR" actually worked to do what it's trying to say, would it be what you 
wanted?

Because I can't believe I didn't recognize this is an instance of the very 
thing I posted on this list this morning, where the solr-lucene query parser 
has problems with some kinds of 'pure negative' queries. Try this as a 
workaround to those problems:

fq=(*:* AND -openingtime:[* TO *]) OR openingtime:[* TO NOW]

If the semantics we're trying to express there are in fact what you want, 
there's probably a way to make it work, if the problem is just how to actually 
get solr to give you "everything without an opening time or an opening time 
before NOW" in an fq. 

Jonathan
________________________________________
From: Jan-Eirik B. Nævdal [jan-eirik.naev...@iterate.no]
Sent: Monday, March 21, 2011 6:55 PM
To: Jonathan Rochkind
Cc: solr-user@lucene.apache.org
Subject: Re: Problems with creating a query that matches all the documents I 
want to display

Unfortunalty have I tried the OR approach in the fq.
with the positive filter query first i get document 4, with negative filter 
query first i get none result,
This request gives me 1 reply
http://localhost:8983/solr/select/?q=*%3A*&version=2.2&start=0&rows=100&indent=on]&fq=obj_todate_dt%3A[*%20TO%20NOW]%20&fq=obj_todate_dt%3A[NOW%20TO%20*]

same as this (but if %20 is used between OR it would not give any hits)

http://localhost:8983/solr/select/?q=*%3A*&version=2.2&start=0&rows=100&indent=on]&fq=obj_fromdate_dt%3A[*%20TO%20NOW]OR-obj_fromdate_dt%3A[*%20TO%20*]&fq=obj_todate_dt%3A[NOW%20TO%20*]OR-obj_todate_dt%3A[*%20TO%20*]


This does not give any result:
http://localhost:8983/solr/select/?q=*%3A*&version=2.2&start=0&rows=100&indent=on]&fq=-obj_fromdate_dt%3A[*%20TO%20*]ORobj_fromdate_dt%3A[*%20TO%20NOW]&fq=-obj_todate_dt%3A[*%20TO%20*]ORobj_todate_dt%3A[NOW%20TO%20*]


Testing both on 1.3 1.4 just to be sure, and changing default operator to OR
Im running a standard solr 1.4.1 schema and just added these to dynamic fileds 
in the example docs, just to make it easy to test for me.


On Mon, Mar 21, 2011 at 10:53 PM, Jonathan Rochkind 
<rochk...@jhu.edu<mailto:rochk...@jhu.edu>> wrote:
You can put an actual OR in the fq (an fq, by default, is in the solr-lucene 
query parser language). Might that achieve what you want?

&fq=  -openingtime:[* TO *] OR openingtime:[* TO NOW]
&fq=  -closingtime:[* TO *] OR closingtime:[NOW TO *]

Does that, or some variation of it, do what you need?


On 3/21/2011 5:43 PM, Jan-Eirik B. Nævdal wrote:
Hi
Have this problem I tried to solve with filter queries but I think I`m stuck
now, and don't see a solution how to solve my problem.

My problem is that i want a result page that shows those documents that
matches
these filter query fq=openingtime:[* TO NOW] , fq=closingtime[NOW TO *] for
the documents with limited time access
but i want also all documents that does not have the fields openingtime and
closingtime defined
like this filter query fq=-openingtime[* TO *] and fq = -closingtime[* TO *]

Are there some solution that allows me to make a "join" of these two filter
queries, that supports pagination.
A client side "manual" join would not be the best solution here because of
the system the results are displayed in.

Simple example:
Document 1 : openingtime = 1545 1. May.2050  closingtime 1453 1. June.2050
//available in the future
Document 2:  Does not have the fields openingtime and closing time
Document 3   Does not have the fields openingtime and closing time
Document 4 openingtime = 1545 1. May.2010  closingtime 1453 1. June.2030 /
available now

My result page should then show document 2,3 and 4 but not document 1
Can anyone point me in the direction how to solve this


Technical information:
Solr 1.4.1 (is being ported from 1.3) (reasons for going to 3.x would be
appreciated
Default operator: AND
Several different documents where one type should only be displayed in the
results for a limited time. This information is indexed as dates in that
type of document.
Those fields does not exist on the other documents in the index.
Not any major changes in the schema.xml
A solr instance here can contain between 5K-10M documents



JanEirik




--
Jan Eirik B. Nævdal
Solutions Engineer | +47 982 65 347<tel:%2B47%20982%2065%20347>
Iterate AS | www.iterate.no<http://www.iterate.no>
The Lean Software Development Consultancy

Reply via email to