Ok, I understand the .toString() part.
But, if I have some 19" in the text of these items, and I do a search with
19", that has been escaped before parsing....why am I not getting anything?
The indexer analyzer took them out? So then to find these documents, I
would want to either change the analyzer or take the quote out of the query?
Correct?
On 12/20/05 12:07 PM, "Yonik Seeley" <[EMAIL PROTECTED]> wrote:
> On 12/20/05, John Powers <[EMAIL PROTECTED]> wrote:
>> I would like to be able to search for 19 inches with the quote. So I get a
>> query like this:
>> Line 1: +( (name:19"*^4 ld:19"*^2 sd:19"*^3 kw:19"*^1) )
>>
>>
>> That won't work, so I wanted to escape the quotes. The docs said to use a
>> backslash. So I'm doing this:
>>
>> luceneQuery.toString().replaceAll("\"", "\\\\\"")
>
> It should be " => \",
> so shouldn't that be luceneQuery.toString().replaceAll("\"", "\\\"")
>
>> And the result is:
>>
>> Line 2: +( (name:19\"*^4 ld:19\"*^2 sd:19\"*^3 kw:19\"*^1) )
>>
>> This looks right. Then I put it into a MultiFieldQueryParser.parse() via:
>>
>> query =
>> MultiFieldQueryParser.parse(luceneQuery.toString().replaceAll("\"",
>> "\\\\\""), Indexer.CARTABLE, Indexer.analyzer);
>>
>>
>> and I get:
>>
>> Parsed query: +(name:19"*^4.0 ld:19"*^2.0 sd:19"*^3.0 kw:19"*)
>
> This looks right.
>
>> Which of course, won't work. How can I get the escapes to survive through
>> the parsing?
>
> The escapes are for parsing. You don't want them to survive parsing
> unless you also indexed them with escapes.
> Perhaps what is causing your confusion is that Query.toString()
> doesn't currently re-escape special characters.
>
> -Yonik
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]