Thanks for your answer ! I have some followup questions

1. I wrote a custom script to return a constant score of 2.5. It works for 
the following query

{
"query" : {
"function_score": {
"query":{
    "match_all":{}
      },
    "script_score": {
    "lang":"native",
        "script": "constant-score"
    }
}
}
}

in the result i see the value of _score is "2.5" for all docs. But when i 
include a query string it doesnt work

{
"query" : {
"function_score": {
"query":{
    "query_string":{
    "query": "dog"
    }
      },
    "script_score": {
    "lang":"native",
        "script": "constant-score"
    }
}
}
}

2. I would like to access the search keyword (if possible analyzed version) 
to some custom processing depending on the keyword. is that possible ?

3. You mentioned I can consider rescore api, I am interested in trying that 
out. I have some external data stored outside the index (in-memory) , how 
do i make the rescore function pick up data from that external data 
structure instead of index ?

Thanks in advance for any help !

Thanks
Srini

On Friday, April 18, 2014 11:48:25 AM UTC-7, Matt Weber wrote:
>
> Well, the scripts runs against all matching documents of the query so you 
> can do a match_all query [1] to have the logic applied to all your 
> documents.  This is going to be expensive though, so try to filter out as 
> many documents as possible before applying the custom scoring.  Maybe even 
> perform a rescore [2] on the top X docs.  It really all depends on your 
> requirements though.  Run some tests and tune based on those results. 
>
> When I said to be careful. I mean don't do a lot of blocking IO or long 
> running calculations as the script is ran against each matching document. 
>  Cache results and make the script return as quick as possible. 
>
> [1] 
> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-match-all-query.html
> [2] 
> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-rescore.html
>
> Thanks,
> Matt Weber
>
>
>
> On Fri, Apr 18, 2014 at 9:46 AM, Srinivasan Ramaswamy 
> <ursv...@gmail.com<javascript:>
> > wrote:
>
>> Thats great, thanks for your reply. This looks like a good solution for 
>> my requirement ! Is this script applied in each shard ? I want to apply 
>> this function to all the documents so that the Top N picked from each shard 
>> is picked by my custom score. 
>>
>> Also, can you elaborate a little bit on "be careful you can significantly 
>> impact your query performance if you are not careful". I would like to 
>> understand the best practices there.
>>
>> On Friday, April 18, 2014 8:14:54 AM UTC-7, Matt Weber wrote:
>>>
>>> Yes, you can use the Function Score Query [1] in combination with a 
>>> native script written in java [2].  With the native script you can 
>>> basically do whatever you want, but be careful you can significantly impact 
>>> your query performance if you are not careful.
>>>
>>> [1] http://www.elasticsearch.org/guide/en/elasticsearch/
>>> reference/current/query-dsl-function-score-query.html
>>> [2] http://www.elasticsearch.org/guide/en/elasticsearch/
>>> reference/current/modules-scripting.html#_native_java_scripts
>>>
>>> Thanks,
>>> Matt Weber
>>>
>>>
>>> On Thu, Apr 17, 2014 at 11:54 PM, Srinivasan Ramaswamy <
>>> ursv...@gmail.com> wrote:
>>>
>>>> I would like to influence the ranking with few fields that are not 
>>>> stored in the index (eg click data for keyword-documents). I have used 
>>>> custom SearchComponent in Solr to implement similar functionality in the 
>>>> past. I am wondering how can i achieve the same in ElasticSearch.
>>>>
>>>> I know this thread is a very old thread, but i didnt find much 
>>>> information on how to do custom scoring (in elasticsearch) with data thats 
>>>> not stored in the index. This thread looked very relevant to my 
>>>> requirement, so trying to see whether you guys have solved similar 
>>>> requirements with elasticsearch.
>>>>
>>>> Thanks
>>>> Srini
>>>>
>>>> On Wednesday, September 7, 2011 12:18:09 PM UTC-7, Lukáš Vlček wrote:
>>>>>
>>>>> Hi Otis,
>>>>>
>>>>> So if I understand it correctly (providing my knowledge is quite 
>>>>> limited here) you are asking if
>>>>> 1) it is possible to hook into query processing flow and inject or 
>>>>> extend custom handlers for individual flow phases and
>>>>> 2) if we can find in ES the same functionality which is currently 
>>>>> provided by components listed here: http://wiki.apache.org/s
>>>>> olr/SearchComponent (or here: http://lucene.apache.org/solr/
>>>>> api/org/apache/solr/handler/component/SearchComponent.html).
>>>>>
>>>>> As for #1, frankly, I do not know. I have been playing with plugins a 
>>>>> bit but did not have a chance to explore full potential of it yet. I 
>>>>> remember that Shay mentioned that not every aspect of ES is pluggable now 
>>>>> but that is all I know about it (personally, I did not hit the limits by 
>>>>> myself yet, may be I would if I wanted to employ Carrot2 clustering or 
>>>>> something like that)
>>>>>
>>>>> As for #2, if you are after one-to-one comparison of Solr 
>>>>> SearchComponents and ES then I think we would find some matches and also 
>>>>> some misses. Still it could be an interesting exercise to do (although we 
>>>>> should be careful to include only those features that do work well in 
>>>>> distributed environment). We could probably end up identifying new 
>>>>> feature 
>>>>> requests, so this can be useful.
>>>>>
>>>>> Regards,
>>>>> Lukas 
>>>>>
>>>>> On Wed, Sep 7, 2011 at 6:17 PM, Otis Gospodnetic <
>>>>> otis.gos...@gmail.com> wrote:
>>>>>
>>>>>> Hi Lukas,
>>>>>>
>>>>>> Yes, SearchComponents are about extensibility, but specifically about
>>>>>> extending how queries are handled within Solr once Solr gets them.  I
>>>>>> know ES has other types of plugins, and you've listed several of them,
>>>>>> but I'm wondering about which of them is SearchComponent-like.
>>>>>> I've looked at http://www.elasticsearch.org/guide/reference/modules/
>>>>>> plugins.html
>>>>>> , but couldn't find the answer to my Q there.  Maybe I'm looking at
>>>>>> the wrong place?
>>>>>>
>>>>>> Thanks,
>>>>>> Otis
>>>>>> --
>>>>>> Sematext is hiring Search Engineers -- http://sematext.com/about/jobs
>>>>>> .html
>>>>>>
>>>>>> On Sep 6, 2:57 pm, Lukáš Vlček <lukas.vl...@gmail.com> wrote:
>>>>>> > Hi,
>>>>>> >
>>>>>> > I am not Solr expert but to me it seems that SearchComponents in 
>>>>>> Solr are
>>>>>> > about extensibility of out of the box functionality. If that is the 
>>>>>> case
>>>>>> > then I would say that we can talk about plugins in ES world. 
>>>>>> Although there
>>>>>> > is no official doc about how to implement custom plugins yet it is 
>>>>>> really
>>>>>> > not difficult. Apart from that there are several plugins that are 
>>>>>> part of
>>>>>> > distribution (river plugins, attachments mapper, ICU analysis, 
>>>>>> scripting
>>>>>> > languages ... to name a few) and they can be used as an inspiration 
>>>>>> if a new
>>>>>> > plugin implementation is needed.
>>>>>> >
>>>>>> > My 2 cents.
>>>>>> >
>>>>>> > Lukas
>>>>>> >
>>>>>> > On Tue, Sep 6, 2011 at 5:35 PM, Otis Gospodnetic <
>>>>>> otis.gospodne...@gmail.com
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > > wrote:
>>>>>> > > Hello,
>>>>>> >
>>>>>> > > A long time Solr user posted a good question about ES over on 
>>>>>> Sematext
>>>>>> > > Blog, about an equivalent of Solr's SearchComponents in ES:
>>>>>> >
>>>>>> > >http://blog.sematext.com/2010/05/03/elastic-search-distribu
>>>>>> ted-lucene...
>>>>>> >
>>>>>> > > I'm curious, too.  Thanks.
>>>>>> >
>>>>>> > > Otis
>>>>>> > > --
>>>>>> > > Sematext is hiring Search Engineers --http://sematext.com/about/
>>>>>> jobs.html
>>>>>>
>>>>>
>>>>>  -- 
>>>> 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 elasticsearc...@googlegroups.com.
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/elasticsearch/16add2bc-c629-4613-934f-004c8cc749df%
>>>> 40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/16add2bc-c629-4613-934f-004c8cc749df%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  -- 
>> 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 elasticsearc...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elasticsearch/c2f61e06-f419-4e7d-95ed-a92ca14261bc%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/c2f61e06-f419-4e7d-95ed-a92ca14261bc%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/5287e96f-7536-4ec8-b2ad-debca06c7af9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to