我们正在使用NexusDB作为一个小型数据库。我们有一个表,其中定义了一个FulltextIndex。索引配置有以下选项:
用户在编辑框中输入搜索文本,然后使用以下WHERE子句构造SQL语句(当然用Editbox.text替换%s):
WHERE CONTAINS(FullIdx, ''%s'')当用户在编辑框中输入多个单词时,这会出错,因为这两个单独的单词应该嵌入WHERE子句中,如下所示:
WHERE CONTAINS(FullIdx, 'word1' and 'word2')因此,我必须解析textbox值,扫描它的空格,并在这些点拆分文本。这让我想知道是否有可能通过使用fulltextindex的实际定义来创建正确的where子句来解析fulltextindex的每个设置的搜索文本。
因此,如果在ccPunctuationDash定义中启用了FulltextIndex,那么搜索文本也会在'-‘上被分割。
如果您想一想,它与创建索引和所有字符串被标记时完全相同.
我的问题是:根据FUlltextIndex的设置来标记搜索字符串的最简单方法是什么?
发布于 2013-01-30 03:07:36
最简单的方法就是..。若要创建带有字符串字段的空#临时表,请使用与实际表相同的全文索引设置。将TnxTable.Options设置为包含dsoAddKeyAsVariantField。将字符串加载到string字段中,然后查看全文索引索引的表。Presto,将显示一个额外的字段,即排序的标记。现在,您可以在表中迭代以读取令牌。
https://stackoverflow.com/questions/13469086
复制相似问题