On Thu, Apr 3, 2014 at 4:07 PM, Greg Lappen <[email protected]> wrote:

> Hello - I am an elasticsearch newbie and after doing a lot of reading, I
> think I need to use scripts to accomplish my objectives.  Basically, we are
> indexing and searching documents already, and now we need to do a
> non-trivial financial calculation based on user-provided inputs.  The
> output of the calculation depends on the users inputs, and he output of the
> calculation will be a field in the results (a script_field ?) as well as
> used to filter/query the results (a filter script?).
>
> #1) I'd like to have the same script/function be used for the script_field
> and the filter script to avoid code duplication - is this possible?
>

I don't know.


>
> #2 ) Do I need to install my script inside elasticsearch (rather than pass
> it in my query) in order to achieve this?
>

Not if you write it in MVEL or some other scripting language for which you
have installed a plugin.


>
> It seems like that would be better for performance as well, which leads me
> to my next question:
>
> #3) Should I write the script in Java for performance reasons?  I have no
> experience with MVEL, and I know Java already - is Java faster than MVEL
> for number crunching?
>

Java is faster but I'd advise trying it with MVEL first anyway.  MVEL is
like Java except I never trust the order of operations so that shouldn't be
a problem.  Its much faster to prototype it and you may find that the
ability to change it without restarting Elasticsearch is worth the speed
difference.

One things to keep in mind: if you really really want it to be fast you
should try to lean on Lucene as much as possible.  Script filters have to
examine every document but term and range filters use the lucene index to
chop out huge swaths of documents at a time.  They can also be cached
really easily making them even quicker.  So what I'm saying is if you can
limit the documents you actually run the script filter against it'll be
quicker.


> Thanks in advance for any advice you might have!
>
> Greg
>
> --
> 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/ab8e3d97-4d89-4f2e-bcbe-7fca5ee66a7f%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/ab8e3d97-4d89-4f2e-bcbe-7fca5ee66a7f%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/CAPmjWd3sBPimWk2NED0gyC-NZ%2BKL%3DSPu4Y_b%3Dm_ORwWo1T7fFw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to