Yes, this is a lookup from one document of another document using a get
request. Note the result of the lookup is a single document source, whereas
a search request provides a search response with a document source list,
which is vastly oversized for use from a script, and takes even longer to
complete. Note also the comment "This is not very efficient"  ... searches
would be even more harmful at that place in a script code. I do not
recommend it. Instead, use search requests from a client.

Jörg


On Thu, Jul 10, 2014 at 9:14 PM, Adrian <[email protected]> wrote:

> Ok, thanks.
>
> Though I've noticed that I can inject Node in the Factory method to get
> the client in the script as shown here:
> https://github.com/imotov/elasticsearch-native-script-example/blob/master/src/main/java/org/elasticsearch/examples/nativescript/script/LookupScript.java
> .
>
> Couldn't I in this case perform a query through the client?
>
>
>
>
> On Wednesday, 9 July 2014 19:03:49 UTC-4, Jörg Prante wrote:
>
>> Scripts are not an alternative to write filters or queries, they are part
>> of the filter or query computation. With scripts, you can access document
>> fields and perform evaluations depending on one or more field values, for
>> example, for custom scoring. Also, index term statistics can be accessed
>> from scripts. Script results are passed back to the query processing.
>>
>> Jörg
>>
>>
>> On Wed, Jul 9, 2014 at 10:41 PM, Adrian <[email protected]> wrote:
>>
>>> Hi,
>>> I'm curious how scripts work in ES.
>>> I've created a simple script which checks if a field in a record is
>>> equal to a certain value then return 1 otherwise return 0. I used
>>> AbstractDoubleSearchScript as the super class for this script.
>>> My records contains some a data field that is an int and a date field
>>> (long) (some other ones too that I don't care too much yet)
>>>
>>> What I've noticed is that when I execute the script, each record in the
>>> ES db goes through the script and is returned either w a score of 0 or 1.
>>> What I would like to know is if it is possible to do a range query, say
>>> given 2 date params, and select only the records that fall between those
>>> dates to run through the script.
>>>
>>> I know how to do this with the API but not in script format. For example
>>> this non script code works:
>>>  SearchRequestBuilder s = client.prepareSearch("posts")
>>>                 .setQuery(QueryBuilders.queryString(query).
>>> defaultField("post.body"))
>>>                 .setSize(count)
>>>                 .setFrom(start)
>>>                 .setFilter(FilterBuilders.rangeFilter("post.
>>> creationDate").from(interval.getStart.toString()).to(
>>> interval.getEnd.toString()))
>>>                 .setFilter(FilterBuilders.existsFilter("userId"));
>>> s.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
>>>
>>> But when extending AbstractDoubleSearchScript I have access only to a
>>> few things like doc(), source(), fields(), lookup() and I'm not sure how to
>>> filter records.
>>> Also I can't find documentation on what these are ie: what is source()
>>> other than a Map.
>>>
>>> Any help on filtering is greatly appreciated!
>>> Thanks
>>>
>>>
>>>  --
>>> 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/1673cee1-468e-462b-85a4-c8e45fa74156%
>>> 40googlegroups.com
>>> <https://groups.google.com/d/msgid/elasticsearch/1673cee1-468e-462b-85a4-c8e45fa74156%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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/5b353881-4a58-48af-980b-7a0e5f2ae2cf%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/5b353881-4a58-48af-980b-7a0e5f2ae2cf%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAKdsXoGFFQNdRuj6PD5wL0g20pO4XzsPu5SLRJ753SELn7Rn7w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to