我必须想出一个搜索的设计。搜索到的数据不是文档类型。要搜索的数据实体是医疗程序,基本上由一个/两个/三个单词组成。这些词是由管理员预先定义的。例如:血管成形术、鼻整形术、肾上腺手术、ACTH 模拟测试等。
最终用户从选择中选择过程名称,并且用户的选择存储在 db 中。最终用户是指正在创建其个人资料的用户。
我用用户 id 为单独的表中的关键字编制索引。所以对于鼻整形术,如果三个用户添加了它,我将在索引表中有三个条目。对于其他程序也是如此。
程序名称 | 用户名| ------------------------- 隆鼻 1 隆鼻 2 鼻整形术 3 肾上腺手术 2 肾上腺手术 3 血管成形术 1 等等 。
当某些用户尝试搜索程序(将他引导到配置文件)时会出现问题。他可能将“肾上腺手术”写为“肾上腺手术”或“血管成形术”写为“血管成形术手术”或“ACTH 模拟测试”写为“模拟”测试ACTH'。有时程序也可以有同义词/首字母缩写词。
我理解停用词的概念。我可以在它们下定义“手术”和“测试”等常用词。去除这些停用词的索引表并去除搜索查询。
如何实现同义词?还有没有更好的方法来实现这样的搜索?我不认为我可以查看 lucene 或 solr,因为它们是全文搜索引擎。