title and ti have the same duplicate dataset, I used ti for testing to 
reduce the array elements to just two, but no luck.

I'll get some test data and post it in a bit.

/M


On Thursday, 20 March 2014 03:12:47 UTC+1, Zachary Tong wrote:
>
> Could you provide a small recreation of the problem in a gist?  Just a few 
> sample documents and two searches with different sorts that don't work?
>
> It could be your mapping that is incorrect, or a syntax issue with the 
> query/doc/mapping.  It may be a typo, but you are sorting on 
> "title.<value>", but the document you posted has the inner object named 
> "ti", not "title".  
>
> But, assuming that is just a typo while making the post, a gist recreation 
> would be very helpful to debugging this.
>
> -Zach
>
>
>
> On Wednesday, March 19, 2014 2:43:48 PM UTC-5, Marc Witteveen wrote:
>>
>> Hi,
>>
>> I hope somebody can help me, though my question mentions PHP the sort 
>> problem happens when I use the console to fetch data.
>>
>> I am having a MongoDb database with data and use elastic search and PHP 
>> to search and display the search results.
>>
>> The document contains multilingual, see the example below:
>>
>> "data": {
>>     "ti": {
>>         "en": "Poland-Gdansk: Network Equipment",
>>         "nl": "Polen-Gdansk: Netwerk Apparatuur",
>>         "si": "Poljska-Gdansk: Oprema za omrežje"
>>     }
>> }
>>
>>
>> *Note: the document has obvious more data but I don't believe it is 
>> relevent at the moment to make my question understandable. If you want me 
>> to post a complete document, please let me know and I will be happy to do 
>> so.*
>> I am getting the search result fine but when I do a sort om ti field for 
>> an ascending or descending sort the returned dataset is missed up.
>>
>> I am using the official elastic search PHP library available on 
>> https://github.com/elasticsearch/elasticsearch-php.
>>
>> The sort order I set as followed:
>>
>> $sitelanguage = "en";
>> $order = "asc";
>> $sortOrder = array(
>>     "title." . $sitelanguage => array(
>>     "order" => $order
>>     )
>> );
>>
>> These array then is put to the code that build the search query:
>>
>> $searchParams = array(
>>     'body' => array(
>>         'query' => array(
>>             'bool' => array(
>>                 'must' => array(
>>                      array(
>>                          'query_string' => array(
>>                               'default_field' => '_all',
>>                               'query' => 'Gdansk'
>>                           )
>>                      ), 
>>                  )
>>             )
>>          ),
>>         'sort' => $sortOrder
>>      )
>> );
>>
>> It looks to me that with ascending sort order the sort that is executed 
>> is done with the "en" key while descending is done with the "si" key 
>> instead of the value "Poland-Gdansk: Network Equipment".
>>
>> How could I solve is so that sorting is done correctly, so when 
>> $sitelanguage is set to "en" it sorts only on the value in this array and 
>> obvious if any other value is set in the variable the sort is done using 
>> that value.
>>
>>

-- 
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/7f7410c2-2205-41ea-a633-21a7574502d7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to