gsoap wrote:
This does not work in case if we search only " see following query:
you cannot search for the double quote character using the contains function.
the default tokenizer recognizes the character as noise and ignores it.
SELECT * FROM nt:base WHERE CONTAINS(., '""""')
In the above query we have a single term and we are searching only " which
you say should be replaced by "" but it results in parser exception.
please note that you don't have to escape the the double quote in a SQL string
literal. you only have to escape the single quote:
e.g. if you have the following String literal in your java code:
String s = "this string contains ' a single quote";
when you use this string in a SQL contains function you must encode it like
this:
... where contains(., 'this string contains '' a single quote')
but here's the important part: double quotes in the string literal of a contains
function have a special semantic. they mark phrases. e.g. you can search for
nodes that contain the words apache and jackrabbit as consecutive terms:
... where contains(., '"apache jackrabbit"')
if you have just one double quote or nothing between two double quotes the
parser will complain that the contains statement is malformed.
regards
marcel