我有以下内容:
tmpArray[cTerms++] = "[sclenka] CONTAINS \"*" + sessionScope.sclenka +"*\"";
(在Per Henrik Lausten的帮助下)
哪个应该导致:"*term*"
但事实并非如此,我得到的是:"term"
所以,我的问题是如何使用通配符全文搜索?
谢谢!
答案 0 :(得分:1)
如果要使用通配符搜索,请生成以下查询字符串:
tmpArray[cTerms++] = "[sclenka] = \"*" + sessionScope.sclenka +"*\"";
这应该会在"*search query*"
上生成搜索。
通常,这是执行搜索的好方法,因为用户可能希望您的搜索能够像这样工作。
来源:http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Searching_for_Documents#Full-text+Search
答案 1 :(得分:1)
如果您的字符串是正确的并且您没有得到任何结果,那么在Notes客户端FTI搜索中测试相同的字符串。
您还可以在服务器上使用以下调试。
DEBUG_FTV_SEARCH=1
然后在搜索时检查多米诺控制台上的输出。
答案 2 :(得分:0)
我认为你在生成的String中错过了一些转义字符。
tmpArray [cTerms ++] =“[sclenka] CONTAINS \”“+ sessionScope.sclenka +” \“”;
答案 3 :(得分:0)
所以,如果我理解你,结果是一个转义形式的搜索词,其中的星号已被删除?
你能使用这个构造:
tmpArray [cTerms ++] =“[sclenka] CONTAINS \”“+ String.fromCharCode(42)+ sessionScope.sclenka + String.fromCharCode(42)+”\“”;
至少应该避免逃避?
答案 4 :(得分:0)
这只是一个想法 - 但我曾经看到人们开始使用我的NCT搜索工具的所有时间。他们发誓他们没有得到任何结果,当我挖掘时,我总是发现他们使用浏览器作为匿名而不是登录会话。
答案 5 :(得分:0)
@GKIDD
我刚刚在自己的网站上测试了这个。我有NCTSearch设置。我接受来自网络的搜索词,并在lotuscript中运行database.ftsearch()作为其工作的一部分。
我搜索了“数据*”并获得了至少与我在“数据库”中搜索时一样多的结果。
基于此,我认为还有其他事情正在发生。
从我之前对其他答案的评论中,试试这个:创建另一个只做搜索的代理。让它从代理上下文中获取搜索词,就像它是docid一样。使用“agent.runonserver(searchterm)”从第一个代理调用代理,看看你是否可以欺骗它
安德鲁,我正在使用匿名用户获得结果,但没有使用通配符。这里goo.gl/YVtXm在第一行,它表示CONTAINS或者包含或=在从网上搜索时不起作用。