全文検索を使用して、巨大なツリー構造で特定のアイテムを見つけています。ほとんどの場合、ノードの下のアイテムの一致のみに関心があります。しかし、select * from MYTABLE where match 'XXX' を使用すると、ツリー構造全体で全文検索が実行されます。
全文検索に使用される MYTABLE の行を指定する方法はありますか? (つまり、「XXX」に一致します)。ヒントをいただければ幸いです。
全文検索を使用して、巨大なツリー構造で特定のアイテムを見つけています。ほとんどの場合、ノードの下のアイテムの一致のみに関心があります。しかし、select * from MYTABLE where match 'XXX' を使用すると、ツリー構造全体で全文検索が実行されます。
全文検索に使用される MYTABLE の行を指定する方法はありますか? (つまり、「XXX」に一致します)。ヒントをいただければ幸いです。
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'