想象一下这种db
Authors(id, author)
Publication(id, authorID, Title, Year....)
进行字符串搜索查询的最佳方法是什么? " 2001史密斯理论演变",我的意思不是在特定的情况下,但一般来说:搜索记录不是一列?
答案 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部署为数据库的外部索引。