1

我正在使用全文搜索来查找巨大树结构中的某些项目。大多数时候我只对匹配节点下的项目感兴趣。但是当我使用 select * from MYTABLE where match 'XXX' 时,它会在整个树结构中进行全文搜索。

有没有办法可以指定 MYTABLE 中用于全文搜索的行?(即匹配'XXX')。任何提示将不胜感激!

4

1 回答 1

1

在 FTS 表上有效工作的唯一查询是MATCH搜索和搜索rowid/ docid

因此,要搜索子树,您应该使子树(根)的 ID 成为正在搜索的全文的一部分。请注意,大多数分词器会丢弃间断字符,因此 ID 应该是一个句子,其中单词指定了从根到子树的路径。例如:

SELECT *
FROM MyTable
WHERE MyTable MATCH 'ID:"root 3 1 4" Text:whatever'

如果在每个单词中包含树级别,则可能会增加 ID 中单词的选择性:

SELECT *
FROM MyTable
WHERE MyTable MATCH 'ID:"1x3 2x1 3x4" Text:whatever'
于 2013-03-13T20:04:46.007 回答