我的Xpages全文搜索页面在使用<(和!等字符)时崩溃了。可能还有其他人。我目前的解决办法是做一些像这样的事情,阻止用户输入这些字符。
var key;
if(window.event)
key=window.event.keyCode;
else
key=thisEvent.which
if (key==60) {
thisEvent.preventDefault();
}
etc...
我已经搜索过了,但是找不到任何关于如何提交包含这些字符的搜索字符串的文档。有没有办法逃脱他们?或者这仅仅是Lotus Notes的限制。
欢呼声
答案 0 :(得分:2)
实际上,您可以在引号中搜索特殊字符。
Hal!lo
的搜索字词将返回“查询不可理解”错误,因为“!”意思是“不”。但您可以搜索"Hal!lo"
,它会返回您想要的内容。但在其他情况下使用引号将是一个问题。假设用户想要搜索XPages script
,如果您将该查询放入引号,它将搜索确切的字符串。
所以,我建议用Knut建议用“AND”替换那些特殊字符,或者在搜索词中用引号括起来。
您可以从这样的示例开始:A regex to detect string not enclosed in double quotes
答案 1 :(得分:0)
Notes Domino中的全文搜索与 word 相关。它将文本分成您可以搜索的单个单词。您列出的特殊字符用作单词分隔符。所以,你无法搜索它们。
所以,只需用"替换单词中间的特殊字符。 AND"并在一个单词的开头和结尾省略它们。这将搜索分隔的单词。您可能会获得更多搜索结果,然后您可能会在第一时间获得,因为分隔的单词可能位于文本中的任何位置,而不是彼此相邻。
示例:
要查找<hal!lo>
,您需要搜索
hal AND lo
但不适用于<hal!lo>
或?hal lo?
或hal*lo
或......