3

我需要找到任何特殊字符。如果我把它放在一个单词的中间,SQLite FTS 匹配可以忽略它,就好像它不存在一样,例如:

Text Body: book's

如果我的匹配字符串是“书”,我需要得到“书”的结果。使用搬运工或简单的标记器没有问题。

我为此尝试了许多字符,例如:book!s、book?s、book|s、book,s、book:s……,但是当通过匹配搜索“books”时,没有返回这些结果。

我不明白,为什么?

我正在使用:无内容 FTS4 表和外部内容 FTS4 表,我的文本正文中每个单词都有很多字符,应该在搜索时更改为忽略它..

我无法更改匹配查询,因为我不知道单词中的特殊字符在哪里。另外,我需要让原始字长等于 FTS 索引字的长度才能使用匹配信息或片段();因此,我无法从文本正文中删除这些字符。

4

1 回答 1

1

默认分词器不会忽略标点符号,而是将它们视为单词分隔符。

因此文本正文或匹配字符串book's将最终成为两个单词,book并且s. 这些永远不会匹配像books.

要忽略这样的字符',您必须安装自己的自定义标记器。

于 2013-03-17T10:05:48.173 回答