I just confirmed that the following query works as expected:

search(collection2, q="test_s:\"hello world\"", fl="id", sort="id desc")

In this case the double quotes are used to specify a phrase query.

But this fails:

search(collection2, q="test_s:\"hello world", fl="id", sort="id desc")

In this case the double quote is used as part of the term, which is what I
believe you had in mind.

SOLR-10894, I believe was created to address this issue but as of yet no
patch is available.













Joel Bernstein
http://joelsolr.blogspot.com/

On Thu, May 24, 2018 at 12:38 PM, Joel Bernstein <joels...@gmail.com> wrote:

> Also while looking at you're query it looks like you are getting error
> from the solr query parser. I believe the this is the issue you are facing:
>
> https://issues.apache.org/jira/browse/SOLR-10894
>
> I'll confirm, but I believe this query should work:
>
> search(collection1, q="test \"hello world\""...)
>
> In the query about the double quotes are escaped and send to Solr
> unescaped to form the query: test "hello world". The query parse has no
> problem parsing this.
>
> But you're using a double quote not as part of query syntax, but as part
> of the query term. This is where I believe SOLR-10894 comes into play.
>
>
>
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
> On Thu, May 24, 2018 at 11:23 AM, Christian Spitzlay <
> christian.spitz...@biologis.com> wrote:
>
>> Hello,
>>
>> I’m experimenting with streaming expressions and I wonder how to escape a
>> double quote in a value.
>> I am on 7.3.0 and trying with the text area on
>> http://localhost:8983/solr/#/collname/stream
>>
>> The following expression works for me and returns results:
>> search(kmm, q="sds_endpoint_name:F2", fl="sds_endpoint_name",
>> sort="sds_endpoint_name ASC", qt="/export“)
>>
>> When I try to add a double quote to the value quoted with a backslash
>> like this:
>> search(kmm, q="sds_endpoint_name:F\"2", fl="sds_endpoint_name",
>> sort="sds_endpoint_name ASC", qt="/export")
>> I get an exception with message:
>>
>> org.apache.solr.search.SyntaxError:  Cannot parse
>> 'sds_endpoint_name:F\"2': Lexical error at line 1, column 22.
>> Encountered:  after : \"\\\"2\“",
>>
>> I tried several more levels of escaping with backslashes but none worked
>> so far
>> (only the error message was different as sometimes the expression was
>> broken in different ways)
>>
>>
>> On http://localhost:8983/solr/#/collname/query, entering
>> sds_endpoint_name:F\“2
>> as the q parameter does not throw a syntax error and an empty result is
>> returned
>> (which is to be expected as there is no document with a quote in the name
>> at the moment).
>>
>>
>> Is there a correct way to escape the double quote in a streaming
>> expression?
>>
>>
>> Best regards
>> Christian
>>
>>
>

Reply via email to