I solved my problem by using parent/child.
Now I can use: must + should -> has_child -> function_score.

It is working just fine. Just need to check performance.

Thanks

--Pablo

On Thursday, March 20, 2014 4:06:03 PM UTC-3, Pablo Musa wrote:
>
> Ok, I tried all the hints but now I have can't solve my original problem.
>
> I need to do an update to a value of type custom_foo.
> In my previous approach I would do ctx._source.custom_foo.value+=1.
> But now, there is a vector and I dont know which index is custom_foo.
>
> Is there any fast method to get an nested object by value?
>
> Thanks,
> Pablo
>
>
>
> 2014-03-17 16:29 GMT-03:00 Ivan Brusic:
>
>> There is an REST API: 
>> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-analyze.html
>>
>> If you are using Java, you can avoid the network roundtrip by creating 
>> the AnalysisService locally. For hints, see the test class: 
>> https://github.com/elasticsearch/elasticsearch/blob/master/src/test/java/org/elasticsearch/index/analysis/AnalysisModuleTests.java
>>
>> -- 
>> Ivan
>>
>>
>> On Mon, Mar 17, 2014 at 12:11 PM,Pablo Musa wrote:
>>
>>> Thank you very much for the hints ;)
>>>
>>>
>>> > If it matters, you can call the _analyze API to produce the tokens 
>>> before you inject your fields.
>>>
>>> Is there an URL there I can call? Or only using the internal API?
>>>
>>>
>>> > Your cluster state will eventually become enormous.
>>>
>>> Yes, I saw it coming but was postponing in dev phase. Thanks for the 
>>> solution, it will help very much!!
>>>
>>> Thanks again guys!
>>>
>>> --Pablo
>>>
>>>
>>> On Saturday, March 15, 2014 8:59:09 AM UTC-3, Clinton Gormley wrote:
>>>
>>>> To add to what Binh said, you really shouldn't add field names like 
>>>> this:
>>>> On 14 March 2014 21:20, Pablo Musa wrote:
>>>>
>>>>> {
>>>>>   "title":"The greatest band ever - Urban Legion",
>>>>>   "greatest_x" : 1,
>>>>>   "band_x" : 1,
>>>>>   "ever_x" : 1,
>>>>>   "Urban_x": 1,
>>>>>   "Legion_x" : 1,
>>>>>   "greatest_y" : [],
>>>>>   "band_y" : [],
>>>>>   "ever_y" : [],
>>>>>   "Urban_y": [],
>>>>>   "Legion_y" : []
>>>>> }
>>>>>
>>>>
>>>> You end up with an explosion of fields, and each field has an inverted 
>>>> index associated with it.  Your cluster state will eventually become 
>>>> enormous. Any change to the cluster state (eg adding a field, changing an 
>>>> index, changes to nodes etc) results in the cluster state being copied to 
>>>> every node in the cluster. If the state is very large you will experience 
>>>> a 
>>>> significant slow down.
>>>>  
>>>> Instead of:
>>>>
>>>> [{ custom_foo: xxx }, { custom_bar: yyy }]
>>>>
>>>> Use nested fields with eg
>>>> [
>>>>    { type: "custom_foo", value: "xxx" },
>>>>    { type: "custom_bar", value: "yyy" }
>>>> ]
>>>>
>>>> That way you have only two fields.
>>>>
>>>> clint
>>>>  
>>>
>

-- 
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/eb1ae45b-f84c-4658-88f8-52e3d539db2c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to