Elasticsearch

  • Affected App
    WoltLab Suite Forum

    Working with the elasticsearch integration, current version and oracle java 8.

    Two issues:

    1. If you query for *whatever*, you get no hits, even though whateveris a valid term and on the forums, if you query forwhatev*, no hits, but if you query for whatever or whatev you get hits.

    2. If you search for *whatever, you get the following error:

    Display Spoiler
    Code
    SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[-cXzOtSNSPaU-qvkKfAs3A][XXXXXXXX][0]: SearchParseException[[XXXXXXXX][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*wer*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[XXXXXXXX] Failed to parse query [\*wer*]]; nested: ParseException[Cannot parse '\*wer*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-cXzOtSNSPaU-qvkKfAs3A][XXXXXXXX][1]: SearchParseException[[XXXXXXXX][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*wer*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[XXXXXXXX] Failed to parse query [\*wer*]]; nested: ParseException[Cannot parse '\*wer*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-cXzOtSNSPaU-qvkKfAs3A][XXXXXXXX][2]: SearchParseException[[XXXXXXXX][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*wer*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[XXXXXXXX] Failed to parse query [\*wer*]]; nested: ParseException[Cannot parse '\*wer*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-cXzOtSNSPaU-qvkKfAs3A][XXXXXXXX][3]: SearchParseException[[XXXXXXXX][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*wer*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[XXXXXXXX] Failed to parse query [\*wer*]]; nested: ParseException[Cannot parse '\*wer*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-cXzOtSNSPaU-qvkKfAs3A][XXXXXXXX][4]: SearchParseException[[XXXXXXXX][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*wer*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[XXXXXXXX] Failed to parse query [\*wer*]]; nested: ParseException[Cannot parse '\*wer*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }]
    <<<<
    Display Spoiler
  • Assuming Elasticsearch isn't running on here, as it doesn't error out for me.

    If it is running on here, can you guys share your config/setup for it?

    Hopefully I wasn't alone buying the ES add-on! :)

  • It's running on version 2.0.1, I'm simply monitoring the logs to see if there are any issues with the changes made and once I'm confident enough the update will be released.

    Was this regarding the Elasticsearch bug reported up top or meant for another thread?

    Will I get faster response times on this if I open a ticket?

  • I haven't yet checked the whatev* part because I was busy with other things. Opening up a ticket doesn't speed up a bug report unless this was explicitly requested by us to get more data.

    @Alexander Ebert can you share or PM me your elasticsearch config and version? Doesn't appear to be happening on this site, so not sure what you are doing different then how I have it configured.

  • @tjk We run elasticsearch with a stock configuration and build. The elasticsearch plugin does not handle the star character well, it escapes them but this causes it to be used as a raw value in the search term. Since elasticsearch treats the star character as some sort of whitespace, it does not appear in the search database therefore a query word containing this character will never result in any matches.

  • The point I am trying to make is that on my install, if I do a search for

    *elastic

    I get a fatal error:


    If I do the same on this forum for *search, I get no errors and it works:


    This is what I am looking for assistance on.

  • Can reproduce this issue on my site as well. Running ES stock configuration.
    The mentioned log seems to be emtpy though.


    *Edit* Okay it only doesn't show within the ACP here is the ES log:

    Code
    <<<<<<<<4aa696507f84eff4ff8628360d76afa1b240058e<<<<
    Tue, 21 Jul 2015 09:07:46 +0000
    elasticsearch error:
    
    
    
    
    SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[-aX7Slh9Sie9Gu5rFonuzw][wcf][0]: SearchParseException[[wcf][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*test*","use_dis_max":true}},"filter":{"terms":{"languageID":[1,2,0]}}}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[wcf] Failed to parse query [\*test*]]; nested: ParseException[Cannot parse '\*test*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-aX7Slh9Sie9Gu5rFonuzw][wcf][1]: SearchParseException[[wcf][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*test*","use_dis_max":true}},"filter":{"terms":{"languageID":[1,2,0]}}}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[wcf] Failed to parse query [\*test*]]; nested: ParseException[Cannot parse '\*test*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-aX7Slh9Sie9Gu5rFonuzw][wcf][2]: SearchParseException[[wcf][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*test*","use_dis_max":true}},"filter":{"terms":{"languageID":[1,2,0]}}}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[wcf] Failed to parse query [\*test*]]; nested: ParseException[Cannot parse '\*test*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-aX7Slh9Sie9Gu5rFonuzw][wcf][3]: SearchParseException[[wcf][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*test*","use_dis_max":true}},"filter":{"terms":{"languageID":[1,2,0]}}}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[wcf] Failed to parse query [\*test*]]; nested: ParseException[Cannot parse '\*test*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[-aX7Slh9Sie9Gu5rFonuzw][wcf][4]: SearchParseException[[wcf][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*test*","use_dis_max":true}},"filter":{"terms":{"languageID":[1,2,0]}}}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[wcf] Failed to parse query [\*test*]]; nested: ParseException[Cannot parse '\*test*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }]
    <<<<
  • Please follow the instructions shown on the error message to retrieve the full message. And please avoid posting text as images, never provide screenshots of error messages, they can't be searched nor copied from.

    The error ID does not show up in the ACP when you search for it, but here is raw output of the wcf log file:

    Bash
    cat elasticsearch_2015-07-21.txt 
    <<<<<<<<37b69f51b92038f3190b3b81cc9feb8170221240<<<<
    Tue, 21 Jul 2015 13:42:16 +0000
    elasticsearch error:
    
    
    
    
    SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[e9Y7DqB4Qx6AtNbxajAv0w][cloudtalk_wcf][0]: SearchParseException[[cloudtalk_wcf][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*elastic*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[cloudtalk_wcf] Failed to parse query [\*elastic*]]; nested: ParseException[Cannot parse '\*elastic*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[e9Y7DqB4Qx6AtNbxajAv0w][cloudtalk_wcf][1]: SearchParseException[[cloudtalk_wcf][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*elastic*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[cloudtalk_wcf] Failed to parse query [\*elastic*]]; nested: ParseException[Cannot parse '\*elastic*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[e9Y7DqB4Qx6AtNbxajAv0w][cloudtalk_wcf][2]: SearchParseException[[cloudtalk_wcf][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*elastic*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[cloudtalk_wcf] Failed to parse query [\*elastic*]]; nested: ParseException[Cannot parse '\*elastic*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[e9Y7DqB4Qx6AtNbxajAv0w][cloudtalk_wcf][3]: SearchParseException[[cloudtalk_wcf][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*elastic*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[cloudtalk_wcf] Failed to parse query [\*elastic*]]; nested: ParseException[Cannot parse '\*elastic*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }{[e9Y7DqB4Qx6AtNbxajAv0w][cloudtalk_wcf][4]: SearchParseException[[cloudtalk_wcf][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query":{"filtered":{"query":{"query_string":{"allow_leading_wildcard":"false","default_operator":"AND","fields":["message","subject^3"],"minimum_should_match":"75%","query":"\\*elastic*","use_dis_max":true}},"filter":[]}},"size":1000,"sort":{"time":{"order":"desc"}}}]]]; nested: QueryParsingException[[cloudtalk_wcf] Failed to parse query [\*elastic*]]; nested: ParseException[Cannot parse '\*elastic*': '*' not allowed as first character in PrefixQuery]; nested: ParseException['*' not allowed as first character in PrefixQuery]; }]
    <<<<


    And here is output from the elasticsearch log file:


Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!