[Xapian-discuss] Re: Filtering Search Results By Date in PHP
Benny Chan
misterchan at gmail.com
Thu Jul 26 22:27:51 BST 2007
OK,
I found my mistake below. I actually left out the friggin' queryparser:
$query_parser = new_queryparser();
$rp = new_datevaluerangeprocessor(1, true);
queryparser_add_valuerangeprocessor($query_parser, $rp);
So now I can search for ranges and stuff. When I use a search string like
"1/1/2000..1/1/2007"
I print out the parsed query and get:
VALUE_RANGE 1 20000101 20070101
I look at the term list for a document and it shows
D20050101 1 1
M200501 1 1
Y2005 1 1
So I'm thinking the documents are being indexed correctly. BUT I'm still not
getting any results. Any ideas guys?? = ( Thanks for reading.
Benny
On 7/26/07, Benny Chan <misterchan at gmail.com> wrote:
>
> Hello All,
>
> I am trying to make it so that I can do things like "cat
> 1/23/2004..5/24/2005" but I am getting back 0 results. Here is my index
> script:
>
> document_id: field=ref unique=Q boolean=Q
> document_title: field=title weight=100 unhtml index=S
> url: field=url
> document_text: field=document_text unhtml index
> abstract: field=abstract
> doc_date: field=doc_date date=yyyymmdd
> category: field=category boolean=XC
>
>
> I can then index documents fine and search them regularly using the
> following PHP:
>
> $query_parser = new_queryparser();
>
> $rp = new_datevaluerangeprocessor(1, true);
> queryparser_add_valuerangeprocessor($rp);
>
> //set the stemmer and turn on the stemming strategy
> queryparser_set_stemmer($query_parser, $stemmer);
> queryparser_set_stemming_strategy($query_parser, 1);
>
> //set the database
> queryparser_set_database($query_parser, $db);
>
> //set prefix
> queryparser_add_boolean_prefix($query_parser, "category", "XC");
> //add prefix so you can search within titles
> queryparser_add_prefix($query_parser, "title", "S");
>
> //parse and create the query
> $query = queryparser_parse_query($query_parser,
> strtolower($_REQUEST["search"]));
>
> I proceed to index one document only with the date "20050101". I then try
> the query string "20010101..20070101" which is a pretty wide range, but I
> get no results. I'm thinking that I may be entering the query string
> incorrectly or I may be calling the function incorrectly in the php code.
> The indexing of the document seems to be ok. If anyone can shed some light
> on this, I would appreciate it a lot. Thanks for reading.
>
> Benny
>
More information about the Xapian-discuss
mailing list