先说情况在最后再提问题。
比如这个站: https://zidian.51240.com/
一开始是, 三个分类
拼音查字 部首查字 笔画数查字
然后分别点击进去后 是一类分类
然后再点进去 又是一类分类
然后再 点进 字典 进去后才是字的具体含义
点进 组词 进去后 是这个字的各种组词
按 拼音 部首 笔画数 查到字后
在字里面又有对应的词,而且这些词都带链接上的,点进去后又会有详情的词。
没什么经历。感觉这些对应关系太复杂了
如果想用 python 采一下,存在 mysql 里不知道怎么设置数据库对应的关系, 用 django 模型设计怎么实现或者最接近这些关系?
不知道有什么好的思路?
1
raymanr 2020-04-01 17:59:24 +08:00
我有点怀疑这些网站的后台会用关系型数据库进行实现
先说明我是个菜鸡, 但是如果让我做我觉得 redis 一类的键值数据库可能更适合 |
2
also24 2020-04-01 18:03:14 +08:00
如果让我来实现,我更倾向于直接生成这些静态页面。
|
3
InkStone 2020-04-01 18:16:27 +08:00
几万个条目,十个不到的属性,关系再复杂又怎么样……
|
4
ClericPy 2020-04-01 18:19:19 +08:00
看标题以为是前缀树, 进来发现我想少了...
|
5
winnerczwx 2020-04-01 20:05:41 +08:00 via iPhone
猜测……group by pinyin 或静态。不过像这种不会轻易变动的页面静态页面确实更合适
|
6
bwangel 2020-04-02 13:33:22 +08:00
不一定用 MySQL 。
这个可以用 ES 。 创建一个索引,里面的文档结构是 { "character": "中", "pinyin": "zhong", "tone": 1 } 查找所有 “一声 zhong 的汉字” GET /hanzi/hanzi/_search { "bool": { "must": [ // 下面两句是伪代码 term tone == 1 term pinyin == "zhong" ] } } |
7
bwangel 2020-04-02 13:39:46 +08:00
同样,词语也可以创建一个文档,然后用 ES 查询就好。
中国大陆的《汉语大词典》(共 13 册,单字 2.27 万,复词 37.5 万) 所有的汉字+词语的数量也不是很多,单节点的 ES 就可以很好地满足这个需求了。 |