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

Reply via email to