2012-02-17 149 views
2

你认为这是个好主意吗?使用sqlite进行搜索索引?

就像存储sqlite数据库中真实数据库的关键字一样,还有对象ID。所以当你搜索时,用sqlite来获取你找到的对象的ID,然后用这些ID查询真实的数据库。从MySQL数据库

例子中的物体:

ID slug  title  content 
_____________________________________________________________________________ 
5 bla-bla Bla Bla  I know what you did last summer 

这将得到索引的源码,如:

ID keywords 
_____________________________________________________________________________ 
5 know, summer, last, what 

也许

keyword  objects 
    _____________________ 
    know  5, 6 
    summer  5 
    lst   5, 7, 10 
    ... 

,但你会得到一个庞大的数据库,考虑到英语词汇,可能带有约15000个条目

回答

1

数据库的思想是它能够快速高效地进行查询操作。

SQLite另一方面是开发目的的完美工具,因为您不必设置数据库实例。但是,有了它,就会出现某些方面,例如无法高效地处理许多并发连接。

因此,我认为建议的方法并不是最好的,因为SQLite将无法处理许多查询,因此打败了数据库的整个目的。

只是为了维护一个能够处理所有查询的高性能分贝可能会好很多。而且通常有吨的方法可以优化数据库如MySQL和PostgreSQL等

编辑

只是一个想法。也许将字符串分解成单词并将它们当作关键字并不是最好的方法。问题在于,如果在系统中的某个地方使用了某个关键字,搜索就会返回,但不会考虑关键字来自哪里的上下文和优先级。我对搜索知之甚少,但拥有某种排名系统似乎是有益的。

2

,但你会得到一个庞大的数据库,可能跟〜15000项

15000条记录是MySQL一块蛋糕和大多数其他RDBMS。 应该所做的是在MyIsam表中设置您的文本,以便您可以利用全文索引和searching