SQLite全文搜索目录

SQLite全文搜索目录,sqlite,full-text-search,indexing,catalog,Sqlite,Full Text Search,Indexing,Catalog,我想知道,对于SQLite,fts3/4是否可以实现以下功能。 我使用fts3创建了一个包含一些数据的表 例如,如果我搜索e*我会得到以^e开头的所有内容 但是我也可以在索引/目录中搜索以e开头的特定单词吗 这样我才得到了结果,那句话回来了似的;艾略特,伊洛,嗯 将返回包含以lin开头的单词的文档。您只需要匹配的单词,而不需要上下文?也许代码片段功能会对您有所帮助。您可能会发现以下有趣的线索: 将返回包含以lin开头的单词的文档。您只需要匹配的单词,而不需要上下文?也许代码片段功能会对您有所帮助

我想知道,对于SQLite,fts3/4是否可以实现以下功能。 我使用fts3创建了一个包含一些数据的表

例如,如果我搜索e*我会得到以^e开头的所有内容 但是我也可以在索引/目录中搜索以e开头的特定单词吗

这样我才得到了结果,那句话回来了似的;艾略特,伊洛,嗯

将返回包含以lin开头的单词的文档。您只需要匹配的单词,而不需要上下文?也许代码片段功能会对您有所帮助。您可能会发现以下有趣的线索:

将返回包含以lin开头的单词的文档。您只需要匹配的单词,而不需要上下文?也许代码片段功能会对您有所帮助。您可能会发现以下有趣的线索:


FTS引擎通过虚拟功能提供该信息

SELECT offsets(docs) FROM docs WHERE docs MATCH 'e*';
正如文件所说:

对于使用全文索引的SELECT查询,offsets函数返回包含一系列空格分隔整数的文本值。对于当前行的每个短语匹配中的每个术语,返回的列表中有四个整数。每组四个整数解释如下:

术语实例出现在0中的列号表示FTS表最左边的列,1表示下一个最左边的列,以此类推。。 全文查询表达式中匹配术语的术语编号。查询表达式中的术语按出现顺序从0开始编号。 列中匹配项的字节偏移量。 匹配项的大小(以字节为单位)。
如何提取这些信息取决于您以及如何将代码与SQLite集成。

FTS引擎通过虚拟函数提供这些信息

SELECT offsets(docs) FROM docs WHERE docs MATCH 'e*';
正如文件所说:

对于使用全文索引的SELECT查询,offsets函数返回包含一系列空格分隔整数的文本值。对于当前行的每个短语匹配中的每个术语,返回的列表中有四个整数。每组四个整数解释如下:

术语实例出现在0中的列号表示FTS表最左边的列,1表示下一个最左边的列,以此类推。。 全文查询表达式中匹配术语的术语编号。查询表达式中的术语按出现顺序从0开始编号。 列中匹配项的字节偏移量。 匹配项的大小(以字节为单位)。 如何提取这些信息取决于您以及您如何将代码与SQLite集成。

关于第6个参数,该算法非常模糊,因为该算法使用最佳评分方法来查找代码片段

然而,在我的申请中,我得到了我所寻找的原始条款的清晰摘录:

select snippet(docs,'','','', -1, 1) from docs where docs match 'e*';
这可能对你的情况有所帮助;这个在数据库中的解决方案帮助了我,因为我不想在数据库之外的代码中提取术语。如果你正在搜索单个单词,没有空格,或者。。在匹配查询中,

关于其第6个参数非常模糊,因为该算法使用最佳分数方法来查找片段

然而,在我的申请中,我得到了我所寻找的原始条款的清晰摘录:

select snippet(docs,'','','', -1, 1) from docs where docs match 'e*';

这可能对你的情况有所帮助;这个在数据库中的解决方案帮助了我,因为我不想在数据库之外的代码中提取术语。如果你正在搜索单个单词,没有空格,或者。。在匹配查询中,这将返回一组包含lin*的行,但我想要实现的是返回由sqlite索引的单词。例如,在您的示例中,它应该返回linux,linear,linwhatever…但不是同时输入的包含lin*的行。请参阅附加信息。代码片段就是我要查找的。Sqlite指示哪些单词与输入进行比较。唯一剩下的就是提取单词,这样我们就只能看到确切的单词了。好了,Donal的回答还提供了所需的详细信息。@Grezly:…我想实现的是,返回由sqlite索引的单词。如果要查看全文索引中的单词列表,请参阅直接访问全文索引。这将返回一组包含lin*的行,但我要实现的是返回由sqlite索引的单词。例如,在您的示例中,它应该返回linux,linear,linwhatever…但不是同时输入的包含lin*的行。请参阅附加信息。代码片段就是我要查找的。Sqlite指示哪些单词与输入进行比较。唯一剩下的就是提取单词,这样我们就只能看到确切的单词了。好了,Donal的回答还提供了所需的详细信息。@Grezly:…我想实现的是,返回由sqlite索引的单词。如果要查看全文索引中的单词列表,请参阅直接访问全文索引。