DoqueDBはSQLベースのリレーショナルデータベースです。類似文書検索や、関連語拡張を用いた再検索は、SQLの拡張された条件式として記述します。
構文はシンプルであり、また通常のSQL条件式と組み合わせることができるため、複雑な検索を行うSQL文も、読みやすく簡潔に書くことができます。高度な検索を実現するために複数のシステムを組み合わせる必要がなく、シームレスで安全なアプリケーションの開発が容易になります。
以下は類似文書検索と通常の条件検索を組み合わせ、複数のテーブルを結合して検索を行う例です。
------------------------------------------------------------
-- 出版社テーブル
------------------------------------------------------------
create table Publisher (
id int, -- 出版社ID (主キー)
name ntext, -- 出版社名
primary key(id)
);
------------------------------------------------------------
-- 書籍テーブル(出版社と書籍は1:Nの関係)
------------------------------------------------------------
create table Book (
bookId int, -- 書籍ID (主キー)
PublisherId int, -- 出版社ID (外部キー)
title ntext, -- 表題
content ntext, -- 内容
primary key(bookId),
foreign key(PublisherId) references Publisher(id)
);
------------------------------------------------------------
-- 指定したテキストに類似するリコー出版の書籍を類似度の順に取得する
------------------------------------------------------------
select Book.title, score(Book.content), Publisher.name
from Book inner join Publisher on Book.PublisherId = Publisher.id
where Book.content contains freetext('DoqueDBはSQLベースのリレーショナルデータベースです。類似文書検索や、関連語拡張を用いた再検索は、SQLの拡張された条件式として記述します。構文はシンプルであり、また通常のSQL条件式と組み合わせることができるため、複雑な検索を行うSQL文も、読みやすく簡潔に書くことができます。')
and Publisher.name = 'リコー出版'
order by score(Book.content);