2012-03-02 96 views
0

我有以下几点:如何使用通配符在FT搜索

tmpArray[cTerms++] = "[sclenka] CONTAINS \"*" + sessionScope.sclenka +"*\""; 

(随着Per Henrik Lausten帮助)

应结果,其中:"*term*" 但是这不,我得到这个相反:"term"

所以,我的问题是如何使用通配符全文搜索?

谢谢!

+0

随着问题的正确格式化,应改为 ......应结果,其中:'“*术语*”' 但是这不,我得到这个:'“术语”'。 .. – leyrer 2012-03-02 15:01:45

+0

正如我理解你的问题在聊天中,“[字段] CONTAINS查询”只适用于查询有5个或更多字符。因此,您正在寻找能够将字段专用搜索与通配符搜索相结合的正确语法。 – 2012-03-02 15:12:33

+0

是的,正是如此。 – gkidd 2012-03-02 18:14:37

回答

1

如果你想使用通配符搜索,然后生成以下查询字符串:

tmpArray[cTerms++] = "[sclenka] = \"*" + sessionScope.sclenka +"*\""; 

这应该产生于"*search query*"搜索。

一般来说,这是执行搜索的好方法,因为用户可能希望您的搜索能像那样工作。

来源:http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Searching_for_Documents#Full-text+Search

+0

我很抱歉张贴这个晚。这实际上给了正确的结果!感谢所有试图帮助我的人,我相信这也会帮助其他人。 @Per [here](goo.gl/ZPdhX)它表示(CONTAINS/contains/=)在网络上不起作用。但也许它很老,所以他们得到它的工作:)干杯! – gkidd 2012-03-07 07:13:21

0

我想你已经错过了你正在生成的字符串中的一些转义字符。

tmpArray [cTerms ++] =“[sclenka] CONTAINS \”“+ sessionScope.sclenka +” \“”;

+0

您应该为您提供的代码行添加某种解释,但它可能会回答这是质量很低的问题。 – 2012-03-02 16:31:41

+0

但这不会添加我需要的通配符... – gkidd 2012-03-02 18:15:44

0

因此,如果我了解你,结果是星号已被删除的搜索词的转义形式?

你可以使用构建体:

tmpArray [cTerms ++] = “[sclenka]包含\” “+使用String.fromCharCode(42)+ + sessionScope.sclenka使用String.fromCharCode(42)+ ”\“” ;

至少应该避免逃跑?

+0

,它会在搜索字词周围添加星号。但我没有得到任何结果... – gkidd 2012-03-02 18:43:18

+0

十二月,记得当你建议如果我发布一些代码,我会得到更好的结果?我认为,如果可以的话,可能会有助于看到下一个代码 - 执行ftsearch的代码。 – 2012-03-02 20:31:58

1

如果字符串是正确的,你越来越没有结果,然后测试在Notes客户端FTI搜索相同的字符串。

您还可以在服务器上使用以下调试。

DEBUG_FTV_SEARCH=1 

然后在您执行搜索时检查多米诺骨牌控制台上的输出。

+0

使用Notes Client FT搜索时,我会得到完美的结果。关于调试,我将在星期一开始工作时尝试它。我会公布结果。谢谢 – gkidd 2012-03-02 20:03:08

+1

请注意我关于使用=而不是CONTAINS的答案。我相信这是搜索没有结果的原因。期待周一听到你的结果。 – 2012-03-02 21:54:00

0

leyrer,是否有可能 - 只是有可能 - 您在浏览器中执行此操作而您的会话未通过身份验证?如果是这样,你可能会搜索数据库为“匿名”,当你从浏览器进行测试时,你正在搜索“leyrer”。

这只是一个想法 - 但我曾经看到,人们总是会开始使用我的NCT搜索工具。他们发誓他们没有得到任何结果,而当我挖掘时,我总是会发现他们以匿名方式使用浏览器,而不是登录会话。

+0

我会代表gkidd回答(谁问了问题,Leyrer只编辑它)。他正在获得结果,但仅限于确切的搜索条件 - 不适用于通配符搜索。 – 2012-03-02 21:55:21

+0

让他尝试这种替代语法...而不是“包含”只是使用“=”我不记得星号通配符是否与包含。 – 2012-03-02 22:33:11

+0

谢谢Per。安德鲁,我得到的结果与匿名用户,但没有与通配符。 这里第一行是http://goo.gl/YVtXm,它表示CONTAINS或包含或=在从网络搜索时不起作用。 – gkidd 2012-03-03 09:52:32

0

@GKIDD

我只是测试这对我自己的网站。我有NCTSearch设置。我接受来自Web的搜索词,并在lotuscript中运行database.ftsearch()作为其作业的一部分。

我搜索了“data *”,并且获得了至少与搜索“数据库”时一样多的结果。

基于此,我认为还有其他事情正在发生。

从我之前对其他答案的评论,试试这个:创建另一个只做搜索的代理。让它从代理上下文中获取搜索词,就好像它是一个docid。从第一个代理使用“agent.runonserver(searchterm)”调用代理“看看你是否可以骗过它

Andrew,我得到的结果与匿名用户,但没有与通配符。这里第一行是goo.gl/YVtXm,它表示CONTAINS或包含或=在从网络搜索时不起作用。

+0

谢谢。我会看看我会想出什么。 – gkidd 2012-03-07 07:07:44