我尝试在ssjs中创建一个如下所示的搜索功能。notesdocumentcollection.ftsearch和带有特殊字符的搜索查询
notesdocumentcollection.ftsearch('"*' + searchword + '*"');
我有一个带有该字段值“Dr. Max Muster”的文档。 如果我搜索“博士”,我会得到一个结果。 如果我搜索“dr.max”,我没有得到结果。 如果我删除通配符并输入“dr.max”,我会得到一个结果。
我也tryed像这样
notesdocumentcollection.ftsearch('*' + searchword + '*');
有没有什么办法让与搜索查询通配符和特殊字符的结果呢?
P.S. 如果我在视图中的notesclient中尝试此操作,它将起作用。
编辑: 此查询。“马医生”我从服务器
IN FTGSearch option = 0x400089
[12CC:000A-1A30] Query: dr. ma
[12CC:000A-1A30] Engine Query: ("drma")
[12CC:000A-1A30] OUT FTGSearch error = F22
[12CC:000A-1A30] FTGSearch: found=0, returne
[12CC:000A-1A30] IN FTGSearch option = 0x40008C
[12CC:000A-1A30] Query: *"dr**ma"*
[12CC:000A-1A30] Engine Query: ("*dr**ma*")
[12CC:000A-1A30] OUT FTGSearch error = F22
[12CC:000A-1A30] FTGSearch: found=0, returned=0, start=0, count=0, limit=0
是'英尺指数'更新,对不对?也许尝试重新创建它。但从什么 - 看,你的搜索请求是正确的。 –
不,每一件事都会更新。正如我所说,我已经在notesclient中尝试了它,并且每件事情都有效。 – Pudelduscher
我相信这里的基本问题是FTSearch是面向字的。即,索引器创建了每个文档中出现的单词的索引,并且要做到这一点,它需要定义“单词”是什么。在大多数语言中,一个单词被定义为一组连续字符,没有空格,也没有标点符号。即,“博士”是一个词。 “博士”不是一个字,因为“。”是标点符号,它不包含在索引中,因此您无法真正搜索它。 –