好的sqlite DB结构用于存储和搜索同义词

时间:2012-11-29 22:52:12

标签: android database sqlite

我有一个带有单词和描述的DB表(有点像字典)。这些单词可以有同义词,我希望能够搜索单词和同义词,从而给出“主”单词。实现这一目标的最佳数据库结构是什么,并使搜索变得简单有效?

例如:一个词可能是'tree',可能是同义词'plant'和'vegetation'。搜索“植物”时,结果应该是:

(植物,植被):Blablabla


假设我也想搜索单词描述会改变你的答案吗?

域名(如果重要)是带有Sqlite DB的Android应用程序。

P.S。我见过诸如Good database and structure to store synonyms之类的问题,但这有点具体。

1 个答案:

答案 0 :(得分:1)

类似的东西:

create table descriptions
(
   description_id integer not null primary key,
   content varchar
);

create table words
(
   word varchar not null primary key,
   description_id integer not null,
   foreign key (description_id) references descriptions (description_id)
);

(关于语法不是100%,我真的不知道SQLite,但上面是ANSI SQL)

words表中与description_id相同的每一行都是其他行的同义词。

您可能希望在存储它们之前对其进行“规范化”(全部小写,单数等)。