Xpages - 全文搜索(>),!导致错误的字符)

时间:2014-12-18 02:52:04

标签: full-text-search xpages lotus-notes

我的Xpages全文搜索页面在使用<(和!等字符)时崩溃了。可能还有其他人。我目前的解决办法是做一些像这样的事情,阻止用户输入这些字符。

var key;
if(window.event)
key=window.event.keyCode;
else
key=thisEvent.which

if (key==60) {
 thisEvent.preventDefault();
}
etc...

我已经搜索过了,但是找不到任何关于如何提交包含这些字符的搜索字符串的文档。有没有办法逃脱他们?或者这仅仅是Lotus Notes的限制。

欢呼声

2 个答案:

答案 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或......