You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Barbara Krausz <bk...@web.de> on 2005/05/25 13:00:34 UTC
Finding docs which contain at least x of the queryterms
>
Hi,
Consider a Query with e.g. 4 terms (t1,t2,t3,t4). I want to retrieve all
documents which contain at least e.g. 3 of the queryterms. How can I
implement this?
The first idea is to use BooleanQueries such as
(t1 and t2 and t3 and t4) or (t1 and t2 and t3) or(t1 and t2 and t4) or
(t1 and t3 and t4).....
But the perfomance is not very good when I have 20 queryterms and I want
to retrieve all docs which contain at least 15 of the terms.
Can I modify the skipto-algorithm in ConjunctionScorer in order to
achieve this?
Thanks
Barbara
PS: Has anybody written a Statistics-class which says how many term and
different terms are in the index. And perhaps computes the mean
length of the documents in the index with the standard deviation?
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
utf-8 & Lucene 1.4.3 & Solaris &windows
Posted by gaudinat <ar...@healthonnet.org>.
Hi,
I haven't got no utf-8 index when I use Lucene with Solaris while my
characters are OK under windows. My indexing program is the same and it
uses lucene 1.4.3.
Is someone have an Idea to help me?
Regards,
Arnaud.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Finding docs which contain at least x of the queryterms
Posted by Paul Elschot <pa...@xs4all.nl>.
On Wednesday 25 May 2005 13:00, Barbara Krausz wrote:
>
> >
> Hi,
>
> Consider a Query with e.g. 4 terms (t1,t2,t3,t4). I want to retrieve all
> documents which contain at least e.g. 3 of the queryterms. How can I
> implement this?
> The first idea is to use BooleanQueries such as
> (t1 and t2 and t3 and t4) or (t1 and t2 and t3) or(t1 and t2 and t4) or
> (t1 and t3 and t4).....
>
> But the perfomance is not very good when I have 20 queryterms and I want
> to retrieve all docs which contain at least 15 of the terms.
> Can I modify the skipto-algorithm in ConjunctionScorer in order to
> achieve this?
I don't think so, but in case you can describe a method to do this,
please share it.
In the svn trunk there is a DisjunctionSumScorer that has the
minimum number of subquery matchers as a constructor parameter:
http://svn.apache.org/viewcvs.cgi/lucene/java/trunk/src/java/org/apache/lucene/search/
It has this javadoc comment in the advanceAfterCurrent method:
* @todo Investigate whether it is possible to use skipTo() when
* the minimum number of matchers is bigger than one, ie. try and use the
* character of ConjunctionScorer for the minimum number of matchers.
The constructor parameter is not used (even in the trunk), so you'll have
to write the code to use it yourself. I'd recommend to start from the trunk
and extend BooleanQuery for this.
Regards,
Paul Elschot
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Finding docs which contain at least x of the queryterms
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On May 25, 2005, at 7:00 AM, Barbara Krausz wrote:
> Hi,
>
> Consider a Query with e.g. 4 terms (t1,t2,t3,t4). I want to
> retrieve all documents which contain at least e.g. 3 of the
> queryterms. How can I implement this?
> The first idea is to use BooleanQueries such as
> (t1 and t2 and t3 and t4) or (t1 and t2 and t3) or(t1 and t2 and
> t4) or (t1 and t3 and t4).....
>
> But the perfomance is not very good when I have 20 queryterms and I
> want to retrieve all docs which contain at least 15 of the terms.
> Can I modify the skipto-algorithm in ConjunctionScorer in order to
> achieve this?
>
> Thanks
> Barbara
>
> PS: Has anybody written a Statistics-class which says how many term
> and different terms are in the index. And perhaps computes the
> mean length of the documents in the index with the standard deviation?
There is an interesting trick you can play with a custom Similarity
class on a BooleanQuery - check out the coord method. This could be
used to ensure that an "overlap" of 3 is mandatory for a match, for
example.
I'll leave the details of this as an exercise to the reader for the
moment.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org