FTsearch在xpage的视图控件中无法正常工作

时间:2014-05-22 14:33:59

标签: full-text-search xpages xpages-ssjs

我有一个视图控件,并通过应用程序布局控件中的搜索参数创建查询字符串。已启用全文索引,搜索属性中的代码如下所示:

var queryStr="";
if(param.option=="byName"){
queryStr="[name]="+param.search;
}
else{
queryStr="[title]="+param.search;
}
return queryStr;

我发现queryStr可以正确,例如" [name] = Vincent"但是视图显示所有文档都包含单词" Vincent",而不仅仅是特定字段"名称&#34 ;.就像我用过" Vincent"用于搜索。

我想知道如何得到正确的结果。谢谢你!

3 个答案:

答案 0 :(得分:4)

应该吗? “[name] CONTAINS”+ param.search;

与此类似: [Projectname]包含最高机密

使用单词CONTAINS而不是=?

我不是百分百肯定,但最近有一篇关于搜索的博客文章:http://lostinxpages.com/2014/05/15/exporting-to-excel-using-queries-in-xpages/

答案 1 :(得分:1)

最后我发现了问题。全文语法工作正常," field / FIELD / []"或"包含/ CONTAINS / ="能行得通。但我使用了应用程序布局进行搜索。搜索按钮生成两个参数:"选项"(如果您之前选择)和"搜索"默认情况下。搜索参数直接用作视图控件的搜索属性的值。当我自己定制这个属性时,它不会被使用(如果ssjs返回null)或者生成一个"不可理解"错误(如果ssjs返回一个字符串,这在大多数情况下是正常的)。解决方案是给两个参数自定义参数名.like field为选项,searchText为搜索。之后,你可以使用param.fieldName和param.searchText来构建你的全文搜索字符串。我试过了,现在它运行正常。

答案 2 :(得分:0)

在大多数情况下,David Leedys答案应该有效。关于诊断FTI问题的一些指示。

1。您的搜索词组必须用引号括起来。示例:

queryStr='[name] = "' + param.search + '"';

2。获取实际完全构造的搜索字符串并在Notes FTI搜索栏中对其进行测试。你得到同样不正确的结果吗?如果是,则修复搜索字符串。

3. 如果它在Notes客户端中工作,则将以下调试添加到Domino服务器notes.ini文件中(或者从控制台中添加set config)。

Debug_FTV_Search=1

当您运行搜索时,它应生成如下调试:搜索[name] CONTAINS "String"

IN FTGSearch
[22E8:008A-1710] option = 0x400219
[22E8:008A-1710] Query: ( FIELD name CONTAINS  "String")
[22E8:008A-1710] Engine Query: ("String"%STEM@F134)
[22E8:008A-1710] GTR query performed in 10 ms. 2 documents found
[22E8:008A-1710] 0 documents disualified by deletion
[22E8:008A-1710] 0 documents disqualified by ACL
[22E8:008A-1710] 0 documents disqualified by IDTable
[22E8:008A-1710] 0 documents disqualified by NIF
[22E8:008A-1710] Results marshalled in 8 ms. 2 documents left
[22E8:008A-1710]  OUT FTGSearch error = 0
[22E8:008A-1710] FTGSearch: found=2, returned=2, start=0, count=0, limit=0
[22E8:008A-1710] Total search time 22 ms.

您想要检查客户端搜索与XPage中的QueryEngine Query,以查看生成的内容。如果它们不匹配,请使用结果更新您的问题,以便我们可以看到正在发生的事情。

取消资格的部分会告诉您搜索结果是否被删除。例如,如果您的XPage在不允许查看文档的凭据下运行,那么disqualified by ACL将具有值。

4. Notes客户端有两种搜索语法方法。有“笔记”和“网络”风格。默认情况下,R9(和R8.x IIRC)是Web样式(客户端)。服务器使用Notes样式。

您可以在“基本设置”首选项中更改客户端行为。

Search settings

除非搜索中的第一个单词是保留关键字且全部为大写,否则Web样式不会理解Notes语法。

实施例。

  • 将使用“网络”搜索:field name contains "string"
  • 将使用“备注”搜索:FIELD name contains "string"

我不确定这是否会影响XPiNC(从未测试过)。