我使用全文搜索来查找巨大树结构中的某些项目。大多数时候我只对匹配节点下的项目感兴趣。但是当我使用匹配'XXX'的MYTABLE中的select *时,它会对整个树结构进行全文搜索。
有没有办法可以指定MYTABLE中用于全文搜索的行? (即匹配'XXX')。任何提示都将不胜感激!
答案 0 :(得分: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'