Can't sort on string types with more than one value per doc

Hi,

I'm trying to sort documents based on a field named "sortableSubject" (not
analyzed, type string).

But even though it's not analyzed, it throws the following exception:

"ReduceSearchPhaseException: Failed to execute phase [fetch], [reduce] ;
shardFailures {[1][1][4]: QueryPhaseExecutionException[[1][4]:
query[+(body:body* |
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@14637eb>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][0]: QueryPhaseExecutionException[[1][0]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@1b72b99>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][3]: QueryPhaseExecutionException[[1][3]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@547ea3>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][1]: QueryPhaseExecutionException[[1][1]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@8f7cf4>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][2]: QueryPhaseExecutionException[[1][2]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@1015d59>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }

Am I missing something ? Can't we sort documents on string of many words ?

--
View this message in context: http://elasticsearch-users.115913.n3.nabble.com/Can-t-sort-on-string-types-with-more-than-one-value-per-doc-tp3180532p3180532.html
Sent from the ElasticSearch Users mailing list archive at Nabble.com.

Are you sure its not analyzed? (try a get mapping request)
Are there multiple values - e.g. an array of sortableSubject?

On 18 Jul., 22:49, icefire gascon.char...@gmail.com wrote:

Hi,

I'm trying to sort documents based on a field named "sortableSubject" (not
analyzed, type string).

But even though it's not analyzed, it throws the following exception:

"ReduceSearchPhaseException: Failed to execute phase [fetch], [reduce] ;
shardFailures {[1][1][4]: QueryPhaseExecutionException[[1][4]:
query[+(body:body* |
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@14637eb>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][0]: QueryPhaseExecutionException[[1][0]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@1b72b99>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][3]: QueryPhaseExecutionException[[1][3]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@547ea3>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][1]: QueryPhaseExecutionException[[1][1]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@8f7cf4>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }{[1][1][2]: QueryPhaseExecutionException[[1][2]: query[+(body:body*
|
subject:body*)],from[0],size[5000],sort[<custom:"sortableSubject":
org.elasticsearch.index.field.data.strings.StringFieldDataType$1@1015d59>!]:
Query Failed [Failed to execute main query]]; nested: IOException[Can't sort
on string types with more than one value per doc, or more than one token per
field]; }

Am I missing something ? Can't we sort documents on string of many words ?

--
View this message in context:http://elasticsearch-users.115913.n3.nabble.com/Can-t-sort-on-string-...
Sent from the Elasticsearch Users mailing list archive at Nabble.com.

I have come across this in 0.17.0 as well, and its somewhat inconvenient for my purposes as well. I guess there is not yet a way to make a multi-token string field both analyzed and sortable? (I guess this would require a new 'sortable' field mapping option). I really like having cake, but I really like to eat it too :slight_smile:

There is with the multi field option, or are you pointing to something else?

On Wed, Jul 20, 2011 at 9:13 PM, jmurdoch jv.murdoch@gmail.com wrote:

I have come across this in 0.17.0 as well, and its somewhat inconvenient
for
my purposes as well. I guess there is not yet a way to make a multi-token
string field both analyzed and sortable? (I guess this would require a
new 'sortable' field mapping option). I really like having cake, but I
really like to eat it too :slight_smile:

--
View this message in context:
http://elasticsearch-users.115913.n3.nabble.com/Can-t-sort-on-string-types-with-more-than-one-value-per-doc-tp3183742p3186225.html
Sent from the Elasticsearch Users mailing list archive at Nabble.com.