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 Mike Sokolov <so...@ifactory.com> on 2012/06/16 20:33:51 UTC
filter by term frequency
I imagine this is a question that comes up from time to time, but I
haven't been able to find a definitive answer anywhere, so...
I'm wondering whether there is some type of Lucene query that filters by
term frequency. For example, suppose I want to find all documents that
have exactly 2 occurrences of some word. I know that the frequency is
stored and used in scoring , but I don't think it is exposed in a simple
way at the query level. It looks to me as if CustomScoreQuery might be
a convenient way to monkey with scores? But it doesn't seem to use that
for filtering, just sorting. Perhaps a Collector could then impose a
score threshold later? Any suggestions here?
-Mike
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: filter by term frequency
Posted by Mike Sokolov <so...@ifactory.com>.
Thanks, Jack!
On 6/16/2012 5:26 PM, Jack Krupansky wrote:
> If you were a *Solr* user, I could say "try the 'termfreq' function
> query":
>
> termfreq(field,term) returns the number of times the term appears
> in the field for that document.
> Example Syntax: termfreq(text,'memory')
>
> See:
> http://wiki.apache.org/solr/FunctionQuery#tf
>
> Lucene does have "FunctionQuery", "ValueSource", and
> "TermFreqValueSource".
>
> See:
> http://lucene.apache.org/solr/api/org/apache/solr/search/function/FunctionQuery.html
>
>
> -- Jack Krupansky
>
> -----Original Message----- From: Mike Sokolov
> Sent: Saturday, June 16, 2012 2:33 PM
> To: java-user@lucene.apache.org
> Subject: filter by term frequency
>
> I imagine this is a question that comes up from time to time, but I
> haven't been able to find a definitive answer anywhere, so...
>
> I'm wondering whether there is some type of Lucene query that filters by
> term frequency. For example, suppose I want to find all documents that
> have exactly 2 occurrences of some word. I know that the frequency is
> stored and used in scoring , but I don't think it is exposed in a simple
> way at the query level. It looks to me as if CustomScoreQuery might be
> a convenient way to monkey with scores? But it doesn't seem to use that
> for filtering, just sorting. Perhaps a Collector could then impose a
> score threshold later? Any suggestions here?
>
> -Mike
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: filter by term frequency
Posted by Jack Krupansky <ja...@basetechnology.com>.
If you were a *Solr* user, I could say "try the 'termfreq' function query":
termfreq(field,term) returns the number of times the term appears in the
field for that document.
Example Syntax: termfreq(text,'memory')
See:
http://wiki.apache.org/solr/FunctionQuery#tf
Lucene does have "FunctionQuery", "ValueSource", and "TermFreqValueSource".
See:
http://lucene.apache.org/solr/api/org/apache/solr/search/function/FunctionQuery.html
-- Jack Krupansky
-----Original Message-----
From: Mike Sokolov
Sent: Saturday, June 16, 2012 2:33 PM
To: java-user@lucene.apache.org
Subject: filter by term frequency
I imagine this is a question that comes up from time to time, but I
haven't been able to find a definitive answer anywhere, so...
I'm wondering whether there is some type of Lucene query that filters by
term frequency. For example, suppose I want to find all documents that
have exactly 2 occurrences of some word. I know that the frequency is
stored and used in scoring , but I don't think it is exposed in a simple
way at the query level. It looks to me as if CustomScoreQuery might be
a convenient way to monkey with scores? But it doesn't seem to use that
for filtering, just sorting. Perhaps a Collector could then impose a
score threshold later? Any suggestions here?
-Mike
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org