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/8a8cd570-b849-4cdf-a7ec-974212a0993d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to