Hi Adrien,

it works fine: docFieldStrings("_index") and docFieldStrings("_uid")

Thanks for your help.


On Monday, March 16, 2015 at 9:41:46 PM UTC+1, Adrien Grand wrote:
>
> I haven't tried, but getting the value of the _index field should work.
>
> On Mon, Mar 16, 2015 at 12:42 PM, Sergey Novikov <[email protected] 
> <javascript:>> wrote:
>
>> Hi Adrien,
>>
>> Thank you for the answer.
>>
>> The output of computation depends on document data, and script 
>> parameters. It works already ok, but with caching it seems to be several 
>> times faster.
>>
>> Do you know if it's possible to get the index name from within the 
>> script? I understand I can pass it with the script parameters, but is there 
>> a better solution? Maybe it's already available to the script?
>>
>> On Monday, March 16, 2015 at 7:20:49 PM UTC+1, Adrien Grand wrote:
>>>
>>> indexlookup().getDocId() will not work since these ids change when there 
>>> is a merge. Using a document property is a better idea if the output of 
>>> your computation solely depends on this value. The default configuration 
>>> does not let you have access to _id, but you have _uid however. Beware that 
>>> you might want to also take the index name into account if your cluster is 
>>> serving several indices... But before adding caching, I think it would help 
>>> to figure out if it would be possible to not need caching, eg. by modeling 
>>> data differently?
>>>
>>> On Mon, Mar 16, 2015 at 5:32 PM, Sergey Novikov <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm trying to cache script results using 
>>>>
>>>> cache = CacheBuilder.newBuilder()
>>>>>     .maximumSize(CACHE_MAX_SIZE)
>>>>>     .recordStats()
>>>>>     .build();
>>>>
>>>>
>>>> then in the script I have
>>>>
>>>> @Override
>>>>> public Integer run() {
>>>>>     try {
>>>>>         return cache.get(getCacheKey(), callable);
>>>>>     } catch (ExecutionException e) {
>>>>>         throw new ScriptException(e.getMessage(), e);
>>>>>     }
>>>>> }
>>>>
>>>>
>>>> and the callable is:
>>>>
>>>> new Callable<Integer>() {
>>>>>     @Override
>>>>>     public Integer call() throws Exception {
>>>>>         return getCalculatedResult();
>>>>>     }
>>>>> };
>>>>
>>>>
>>>>
>>>> Could you please help me to create a proper cache key? I want to keep 
>>>> unique results for each document/index. As I understand, cache is shared 
>>>> between multiple indices, so I need to put it in the cache key.
>>>>
>>>> Questions:
>>>> 1. What should I use to identify the document? Can I use 
>>>> indexLookup().getDocId()? Or I should use 
>>>> docFieldLongs("id").getValue() (I have this field in documents)? Can I 
>>>> access "_id" property?
>>>> 2. Can I get the index/type during script execution?
>>>>
>>>>  -- 
>>>> 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 [email protected].
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>> msgid/elasticsearch/474ad09b-3800-4bd0-a50a-97bfd6d9086e%
>>>> 40googlegroups.com 
>>>> <https://groups.google.com/d/msgid/elasticsearch/474ad09b-3800-4bd0-a50a-97bfd6d9086e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> -- 
>>> <http://www.elastic.co>
>>>  
>>  -- 
>> 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 [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elasticsearch/ae47922a-b970-4089-a46e-d9c6d70d3399%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elasticsearch/ae47922a-b970-4089-a46e-d9c6d70d3399%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> <http://www.elastic.co>
>  

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/a460df1b-d0f1-468a-8bfc-26a07a417577%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to