建议请搜索数据库的模式

时间:2015-10-01 11:44:38

标签: database search relational-database

想象一下这种db

Authors(id, author) 
Publication(id, authorID, Title, Year....)

进行字符串搜索查询的最佳方法是什么? " 2001史密斯理论演变",我的意思不是在特定的情况下,但一般来说:搜索记录不是一列?

1 个答案:

答案 0 :(得分:0)

对于简单/快速的解决方案:

考虑在您的“发布”表格上创建一个新的(全文索引)terms列,该列将接收要搜索的每个感兴趣的文本字符串(例如作者姓名,发布日期,标题)。

然后在您的查询中添加MATCH / AGAINST子句(或者为Postgres添加to_tsquery())。

Postgres doc:http://www.postgresql.org/docs/9.4/static/textsearch-tables.html MySQL doc:https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html

如果您发现需要更好地控制搜索相关性或库存搜索功能(如构面和自动填充),请考虑将Solr或Elasticsearch部署为数据库的外部索引。