Last week, I tried out Lucene's Payload and SpanQuery features to do some position based custom scoring of terms. I've been interested in the Payload feature ever since I first read about it, because it looked like something I could use to solve another problem at work...
The problem is to to be able to store a mapping of concepts to scores along with a document. Our search uses a medical taxonomy, basically a graph of medical concepts (nodes) and their relationships to each other (edges). During indexing, a document is analyzed and a map of node IDs and scores is created and stored in the index. The score is composed of various components, but for simplicity, it can be thought of as the number of occurrences of a node in the document. So after indexing, we would end up with something like this:
During search, the query is decomposed into concepts using a similar process, and a query consisting of one or more TermQueries (wrapped in a BooleanQuery) are used to pull documents out of the index. In pseudo-SQL, something like this:
There are many approaches to efficiently model this sort of situation, and over the years we've tried a few. The approach I am going to describe uses Lucene's Payload feature. Basically, the concept map is "flattened" into the main Document, and the scores are farmed out to a Payload byte array, so we can use the scores for scoring our results.
Obviously, this is nothing new... other people have used Payloads to do very similar things. In fact, a lot of the code that follows is heavily based on the example in this Lucid Imagination blog post.
Indexing
At index time, we flatten our concept map into a whitespace separated list of key-value pairs, and the key and value in each element is separated out with a special character, in our case a "$" sign. So a concept map {p1 => 123.0, p2 => 234.0} would be transformed to "p1$123.0 p2$234.0".
Lucene provides the DelimitedPayloadTokenFilter, a custom TokenFilter to parse this string and convert it to equivalent term and payload pairs, so all we have to build on our own is our custom Analyzer. The IndexWriter will use this custom Analyzer for the "data" field in the JUnit test (see below).
On the search side, we create a custom Similarity implementation that reads the score from the payload and returns it. We will tell our searcher to use this Similarity implementation. We want to use only ourconcept scores, not make it part of the full Lucene score, so we indicate that when we create our PayloadTermQuery in our JUnit test.
The actual search logic is in the JUnit test shown below. Here I build a small index with some dummy data in RAM and query it using a straight PayloadTermQuery and two Boolean queries with embedded PayloadTermQueries.
The three tests (annotated with @Test) cover the basic use cases that I expect for this search - a single term search, an AND term search and an OR term search. The last two are done by embedding the individual PayloadTermQuery objects into a BooleanQuery. As you can see from the results below, this works quite nicely. This is good news for me, since based on my reading of the LIA2 book, I had (wrongly) concluded that Payloads can only be used with SpanQuery, and that you need special "payload aware" subclasses of SpanQuery to be able to use them (which is true in case of SpanQuery, BTW).
I also read (on the web, can't find the link now) that Payload queries are usually slower than their non-payload aware counterparts, so I decided to do a quick back-of-the-envelope calculation to see what sort of degradation to expect.
I took an existing index containing approximately 30K documents, and its associated (denormalized) concept index, and merged the two into a single new index with the concept map flattened into the document as described above. I ran 5 concept queries, first as a TermQuery (with a custom sort on the concept score field) and then as a PayloadTermQuery, 5 times each, discarding the first query (to eliminate cache warmup overheads), and averaged the wallclock elapsed times for each query. Here are the results:
Query Term
#-results
TermQuery (ms)
PayloadTermQuery (ms)
2800541
46
0.25
1.5
2790981
39
0.25
1.75
5348177
50
0.75
7.0
2793084
50
0.5
1.75
2800232
50
0.5
0.75
So it appears that on average (excluding outliers), PayloadTermQuery calls are approximately 3-5 times slower than equivalent TermQuery calls. But they do offer a smaller disk (and consequently OS cache) footprint and a simpler programming model, so it remains to be seen if this makes sense for us to use.
Update: 2010-10-11
The situation changes when you factor in the actual document retrieval (ie, page through the ScoreDoc array and get the Documents from the searcher using searcher.doc(ScoreDoc.doc)). It appears that the PayloadTermQuery approach is consistently faster, but not significantly so.
custom similarity setting does not work with version 0.20.2
77 posts
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
77 posts
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
13 posts
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
77 posts
I have token filter. But not query parser. I use more like this query directly. I will not use token payloads on query, I want to use token payloads stored by filter on index time. Do I still need a query parser even if I use more like this query?
On Fri, Feb 8, 2013 at 1:43 PM, benjamin leviant <[hidden email]> wrote:
Your implementation looks good.
But to get payload working in elasticsearch, a custom similarity is not enough.
You need also to implement several custom elements :
- a token filter : to index payload values
- a query parser : to score using payload values
Do you have all these elements working ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 12:15 PM, Mustafa Sener <[hidden email]> wrote:
I use a FloatingPayload filter to create payloads for each term which is separated by '|' character (school|5.8). Then I use following similarity
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
13 posts
It is not working, because the "more like this" query do not call the scorePayload method to score the results.
To use payloads, you need a custom query parser with a query having a scoring method that take in account payloads.
You can see documentation about lucene PayloadTermQuery and PayloadNearQuery.
Regards
Benjamin
On Fri, Feb 8, 2013 at 1:03 PM, Mustafa Sener <[hidden email]> wrote:
I have token filter. But not query parser. I use more like this query directly. I will not use token payloads on query, I want to use token payloads stored by filter on index time. Do I still need a query parser even if I use more like this query?
On Fri, Feb 8, 2013 at 1:43 PM, benjamin leviant <[hidden email]> wrote:
Your implementation looks good.
But to get payload working in elasticsearch, a custom similarity is not enough.
You need also to implement several custom elements :
- a token filter : to index payload values
- a query parser : to score using payload values
Do you have all these elements working ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 12:15 PM, Mustafa Sener <[hidden email]> wrote:
I use a FloatingPayload filter to create payloads for each term which is separated by '|' character (school|5.8). Then I use following similarity
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
77 posts
Ok, Thanks for your help. It was very beneficial for me.
Regards...
On Fri, Feb 8, 2013 at 3:20 PM, benjamin leviant <[hidden email]> wrote:
It is not working, because the "more like this" query do not call the scorePayload method to score the results.
To use payloads, you need a custom query parser with a query having a scoring method that take in account payloads.
You can see documentation about lucene PayloadTermQuery and PayloadNearQuery.
Regards
Benjamin
On Fri, Feb 8, 2013 at 1:03 PM, Mustafa Sener <[hidden email]> wrote:
I have token filter. But not query parser. I use more like this query directly. I will not use token payloads on query, I want to use token payloads stored by filter on index time. Do I still need a query parser even if I use more like this query?
On Fri, Feb 8, 2013 at 1:43 PM, benjamin leviant <[hidden email]> wrote:
Your implementation looks good.
But to get payload working in elasticsearch, a custom similarity is not enough.
You need also to implement several custom elements :
- a token filter : to index payload values
- a query parser : to score using payload values
Do you have all these elements working ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 12:15 PM, Mustafa Sener <[hidden email]> wrote:
I use a FloatingPayload filter to create payloads for each term which is separated by '|' character (school|5.8). Then I use following similarity
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
77 posts
The best option here to use morelikethis query is modify it to take payloads into account. I think I can do this by sub-classing payload query and multiply tf value used by query by payload of that term. What do you think about this design? Actually I need a categorizer which when I enter a text will return best matching categories based on predefined terms and payloads for categories. I select more like this query for this purpose. Payloads are important because I will assign negative payloads to negative samples or terms.
On Fri, Feb 8, 2013 at 3:32 PM, Mustafa Sener <[hidden email]> wrote:
Ok, Thanks for your help. It was very beneficial for me.
Regards...
On Fri, Feb 8, 2013 at 3:20 PM, benjamin leviant <[hidden email]> wrote:
It is not working, because the "more like this" query do not call the scorePayload method to score the results.
To use payloads, you need a custom query parser with a query having a scoring method that take in account payloads.
You can see documentation about lucene PayloadTermQuery and PayloadNearQuery.
Regards
Benjamin
On Fri, Feb 8, 2013 at 1:03 PM, Mustafa Sener <[hidden email]> wrote:
I have token filter. But not query parser. I use more like this query directly. I will not use token payloads on query, I want to use token payloads stored by filter on index time. Do I still need a query parser even if I use more like this query?
On Fri, Feb 8, 2013 at 1:43 PM, benjamin leviant <[hidden email]> wrote:
Your implementation looks good.
But to get payload working in elasticsearch, a custom similarity is not enough.
You need also to implement several custom elements :
- a token filter : to index payload values
- a query parser : to score using payload values
Do you have all these elements working ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 12:15 PM, Mustafa Sener <[hidden email]> wrote:
I use a FloatingPayload filter to create payloads for each term which is separated by '|' character (school|5.8). Then I use following similarity
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
Re: custom similarity setting does not work with version 0.20.2
13 posts
Yes you can try by subclassing morelikethis query to customize its scoring logic.
Sorry, but I cannot confirm you it will be work.
Please, give us update on this.
Regards
On Fri, Feb 8, 2013 at 2:51 PM, Mustafa Sener <[hidden email]> wrote:
The best option here to use morelikethis query is modify it to take payloads into account. I think I can do this by sub-classing payload query and multiply tf value used by query by payload of that term. What do you think about this design? Actually I need a categorizer which when I enter a text will return best matching categories based on predefined terms and payloads for categories. I select more like this query for this purpose. Payloads are important because I will assign negative payloads to negative samples or terms.
On Fri, Feb 8, 2013 at 3:32 PM, Mustafa Sener <[hidden email]> wrote:
Ok, Thanks for your help. It was very beneficial for me.
Regards...
On Fri, Feb 8, 2013 at 3:20 PM, benjamin leviant <[hidden email]> wrote:
It is not working, because the "more like this" query do not call the scorePayload method to score the results.
To use payloads, you need a custom query parser with a query having a scoring method that take in account payloads.
You can see documentation about lucene PayloadTermQuery and PayloadNearQuery.
Regards
Benjamin
On Fri, Feb 8, 2013 at 1:03 PM, Mustafa Sener <[hidden email]> wrote:
I have token filter. But not query parser. I use more like this query directly. I will not use token payloads on query, I want to use token payloads stored by filter on index time. Do I still need a query parser even if I use more like this query?
On Fri, Feb 8, 2013 at 1:43 PM, benjamin leviant <[hidden email]> wrote:
Your implementation looks good.
But to get payload working in elasticsearch, a custom similarity is not enough.
You need also to implement several custom elements :
- a token filter : to index payload values
- a query parser : to score using payload values
Do you have all these elements working ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 12:15 PM, Mustafa Sener <[hidden email]> wrote:
I use a FloatingPayload filter to create payloads for each term which is separated by '|' character (school|5.8). Then I use following similarity
On Fri, Feb 8, 2013 at 12:27 PM, benjamin leviant <[hidden email]> wrote:
I use a custom similarity on Elasticsearch 0.20.1 and it work perfectly well.
If you dont have any error message when you create your index, then your custom similarity should be enable for search and index operations on this index.
May be your problem is caused by the way your similarity provider is implemented. Can you post the code ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 11:00 AM, Mustafa Sener <[hidden email]> wrote:
I have no error messages. It seems that this setting is different before version 0.20. Since there is no documentation about this, I cannot configure it properly.
On Fri, Feb 8, 2013 at 11:42 AM, benjamin leviant <[hidden email]> wrote:
Hi,
What is your the error message ?
How do you get your custom class loaded ?
Regards
Benjamin
On Fri, Feb 8, 2013 at 9:40 AM, Mustafa Sener <[hidden email]> wrote:
That does not work too. I tried it before.
On Fri, Feb 8, 2013 at 10:33 AM, benjamin leviant <[hidden email]> wrote:
On Fri, Feb 8, 2013 at 7:47 AM, Mustafa Sener <[hidden email]> wrote:
Hi, I tried following configurations for my custom similarity provider but none of them worked with version 0.20. Can anyone give me some information about this setting for version 0.20.2? Any sample usages will be enough for me
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- Mustafa Sener
-- Mustafa Sener
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.
-- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/groups/opt_out.