lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From KRIS MUSSHORN <mussho...@comcast.net>
Subject Re: prefix query help
Date Thu, 08 Dec 2016 19:34:05 GMT
yes I did attach rather than paste sorry. 
  
Ok heres an actual, truncated, example of the metatag.date field contents in solr. 
NONE-NN-NN is the default setting. 
  
doc 1 
" metatag.date ": [ 
          "2016-06-15T14:51:04Z" , 
          "2016-06-15T14:51:04Z" 
        ] 
  
doc 2 
" metatag.date ": [ 
          "2016-06-15" 
        ] 
doc 3 
" metatag.date ": [ 
          "NONE-NN-NN" 
        ] 
doc 4 
" metatag.date ": [ 
          "yyyy-mm-dd" 
        ] 
  
doc 5 
" metatag.date ": [ 
          "2016-07-06" 
        ] 

doc 6 
" metatag.date ": [ 
          "2014-04-15T14:51:06Z" , 
          "2014-04-15T14:51:06Z" 
        ] 
  
q=2016-06 should return doc 2 and 1 
q=2016-06 OR 2014-04 should return docs 1, 2 and 6 
  
yes I know its wonky but its what I have to deal with until he content is cleaned up. 
I cant use date type.. that would make my life to easy. 
  
TIA again 
Kris 

----- Original Message -----

From: "Erik Hatcher" <erik.hatcher@gmail.com> 
To: solr-user@lucene.apache.org 
Sent: Thursday, December 8, 2016 12:36:26 PM 
Subject: Re: prefix query help 

Kris - 

To chain multiple prefix queries together: 

    q=({!prefix f=field1 v=‘prefix1'} {!prefix f=field2 v=‘prefix2’}) 

The leading paren is needed to ensure it’s being parsed with the lucene qparser (be sure
not to have defType set, or a variant would be needed) and that allows multiple {!…} expressions
to be parsed.  The outside-the-curlys value for the prefix shouldn’t be attempted with
multiples, so the `v` is the way to go, either inline or $referenced. 

If you do have defType set, say to edismax, then do something like this instead: 
    q={!lucene v=prefixed_queries} 
    &prefixed_queries={!prefix f=field1 v=‘prefix1'} {!prefix f=field2 v=‘prefix2’}

       // I don’t think parens are needed with &prefixed_queries, but maybe.  


&debug=query (or &debug=true) is your friend - see how things are parsed.  I presume
in your example that didn’t work that the dash didn’t work as you expected?   or… not
sure.  What’s the parsed_query output in debug on that one? 

        Erik 

p.s. did you really just send a Word doc to the list that could have been inlined in text?
 :)   



> On Dec 8, 2016, at 7:18 AM, KRIS MUSSHORN <musshorns@comcast.net> wrote: 
> 
> Im indexing data from Nutch into SOLR 5.4.1. 
> I've got a date metatag that I have to store as text type because the data stinks. 
> It's stored in SOLR as field metatag.date. 
> At the source the dates are formatted (when they are entered correctly ) as YYYY-MM-DD

>   
> q=metatag.date:2016-01* does not produce the correct results and returns undesireable
matches....2016-05-01 etc as example. 
> q={!prefix f=metatag.date}2016-01 gives me exactly what I want for one month/year. 
>   
> My question is how do I chain n prefix queries together? 
> i.e. 
> I want all docs where metatag.date prefix is 2016-01 or 2016-07 or 2016-10 
>   
> TIA, 
> Kris 
>   



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message