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]> 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].
> 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/CAO5%3DkAhazTViBZXo%2Bf8rHVQ6c57FwaQxHHHDYEpHh4N0ph6rSQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to