Percolate does not search across documents, it searches across registered
queries for a single input document. As such, it still seems irrelevant to
your desire to "search across all documents".
You still haven't explained how you can't do what you want using basic,
plain Lucene search.
Now, if all you really want is the ES percolate feature, as said, Solr
doesn't have that - if you are sure that percolate really is what you need.
But your use case still isn't clearly elaborated to the point where we can
at least guess what you really need.
For reference:
http://www.elasticsearch.org/guide/reference/api/percolate/
"The percolator allows to register queries against an index, and then send
percolate requests which include a doc, and getting back the queries that
match on that doc out of the set of registered queries.
Think of it as the reverse operation of indexing and then searching. Instead
of sending docs, indexing them, and then running queries. One sends queries,
registers them, and then sends docs and finds out which queries match that
doc."
But that's rather different from what you asked, wanting to match queries
against all terms in the index.
-- Jack Krupansky
-----Original Message-----
From: Mark
Sent: Monday, August 05, 2013 3:44 PM
To: solr-user@lucene.apache.org
Subject: Re: Percolate feature?
Still not understanding. How do I know which words to require while
searching? I want to search across all documents and return ones that have
all of their terms matched.
I came across the following from ElasticSearch
(http://www.elasticsearch.org/guide/reference/api/percolate/) and it
sounds like this may accomplish the above but haven't tested. I was
wondering if Solr had something similar or an alternative way of
accomplishing this?
Also never said this was Percolate, just looked similar
On Aug 5, 2013, at 11:43 AM, "Jack Krupansky" <j...@basetechnology.com>
wrote:
Fine, then write the query that way: +foo +bar baz
But it still doesn't sound as if any of this relates to prospective
search/percolate.
-- Jack Krupansky
-----Original Message----- From: Mark
Sent: Monday, August 05, 2013 2:11 PM
To: solr-user@lucene.apache.org
Subject: Re: Percolate feature?
"can match a user's query against all the terms in the index" - that's
exactly what Lucene and Solr have done since Day One, for all queries.
Percolate actually does the opposite - matches an input document against
a registered set of queries - and doesn't match against indexed
documents.
Solr does support Lucene's "min should match" feature so that you can
specify, say, four query terms and return if at least two match. This is
the "mm" parameter.
I don't think you understand me.
Say I only have one document indexed and it's contents are "Foo Bar". I
want this documented returned if and only if the query has the words "Foo"
and "Bar" in it. If I use a mm of 100% for "Foo Bar Bazz" this document
will not be returned because the full user query didn't match. I i use a
0% mm and search "Foo Baz" the documented will be returned even though it
shouldn't.
On Aug 2, 2013, at 5:09 PM, Jack Krupansky <j...@basetechnology.com>
wrote:
You seem to be mixing a couple of different concepts here. "Prospective
search" or reverse search, (sometimes called alerts) is a logistics
matter, but how to match terms is completely different.
Solr does not have the exact "percolate" feature of ES, but your examples
don't indicate a need for what percolate actually does.
"can match a user's query against all the terms in the index" - that's
exactly what Lucene and Solr have done since Day One, for all queries.
Percolate actually does the opposite - matches an input document against
a registered set of queries - and doesn't match against indexed
documents.
Solr does support Lucene's "min should match" feature so that you can
specify, say, four query terms and return if at least two match. This is
the "mm" parameter.
See:
http://wiki.apache.org/solr/ExtendedDisMax#mm_.28Minimum_.27Should.27_Match.29
Try to clarify your requirements... or maybe min-should-match was all you
needed?
-- Jack Krupansky
-----Original Message----- From: Mark
Sent: Friday, August 02, 2013 7:50 PM
To: solr-user@lucene.apache.org
Subject: Percolate feature?
We have a set number of known terms we want to match against.
In Index:
"term one"
"term two"
"term three"
I know how to match all terms of a user query against the index but we
would like to know how/if we can match a user's query against all the
terms in the index?
Search Queries:
"my search term" => 0 matches
"my term search one" => 1 match ("term one")
"some prefix term two" => 1 match ("term two")
"one two three" => 0 matches
I can only explain this is almost a reverse search???
I came across the following from ElasticSearch
(http://www.elasticsearch.org/guide/reference/api/percolate/) and it
sounds like this may accomplish the above but haven't tested. I was
wondering if Solr had something similar or an alternative way of
accomplishing this?
Thanks