如何从 2 个不同的列进行 FTS 匹配

Posted

技术标签:

【中文标题】如何从 2 个不同的列进行 FTS 匹配【英文标题】:How to FTS-match from 2 different columns 【发布时间】:2017-10-03 16:29:01 【问题描述】:

我正在尝试搜索 2 个名为 keywordkeyword2 的单独列以进行匹配。这可以用 SQLite FTS 完成吗?

我试过这个说法,但没有奏效:

String sql = "Select * from tblvHAL2001 WHERE tblvHAL2001 MATCH 'keyword:" + question + "' OR MATCH 'keyword2:" + question +"'";

【问题讨论】:

FTS5是版本 【参考方案1】:

您应该对每个表只使用一个 FTS 查询。 FTS 确实有boolean operators:

... WHERE tblvHAL2001 MATCH 'keyword: "blah" OR keyword2: "blah"'

而在 FTS5 中,单个 column filter 可以指定多个列:

... WHERE tblvHAL2001 MATCH 'keyword keyword2: "blah"'

【讨论】:

你先生是个传奇!【参考方案2】:
WHERE tblvHAL2001 MATCH 'keyword keyword2: "blah"'

【讨论】:

以上是关于如何从 2 个不同的列进行 FTS 匹配的主要内容,如果未能解决你的问题,请参考以下文章

两个文件中的AWK列匹配,打印不同的列

如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?

如何获得 2 个不同 WHERE 子句的列的平均值?

Sqlite FTS5:使用 Trigram Tokenizer 进行子字符串匹配

如果数据框列值匹配字典键,检查不同的列是不是匹配字典值

excel 两个表格如何匹配多个数据并合并