CBLite (couchbase lite) iOS platform



我是CBLite的新手,我继承了一个大量使用FTS的代码,所有看起来都很好,直到我们发现如果我们搜索一些包含破破号的单词-,如A-Something,查询执行时间比平时长4-5倍。我不知道为什么会发生这种情况,也不知道如何在我的终端找到解决方案(iOS平台的移动CBLite)。

同样,搜索一些包含括号(的单词将根本不起作用,对于这些项的结果总是空的。

Couchbase的建筑师Jens Alfke说:

距离我上次在CBL中编写FTS代码已经有几年了,但这里有一些事情可能会有所帮助:

  • 我不认为标记器(把字符串分解成Words)考虑单词的"-"部分。所以foo-bar会被编入索引就像"foo"one_answers"bar"这两个词,以及搜索"foo-bar"一样只是在寻找那两个字。我可能是错的;你我可以做一些实验来确定。

  • 如果上述为真,则"A-Something"将被标记为"A"one_answers"Something",并且"A"将在索引时被忽略,因为它是一个"停顿词",像"the"one_answers"he"一样非常常见的单词之一。被扔出去了。这意味着查询将搜索"东西"。

  • 括号绝对不被认为是单词的一部分。因此,文档字符串中的父元素将被忽略。查询中的父元素将按照SQLite中的描述对逻辑表达式进行分组FTS查询语言文档1.

最新更新