我必须拿出搜索设计。搜索的数据不是文档类型。要搜索的数据实体是医疗程序,基本上由一个/两个/三个字组成。这些词是由管理员预先定义的。例如:血管成形术,隆鼻术,肾上腺手术,ACTH模拟试验等。如何实施以下搜索类型:
最终用户从选择中选择过程名称,并将用户的选择存储在数据库中。最终用户是指正在创建他的个人资料的用户。
我使用用户标识将单独的表中的关键字编入索引。因此,如果三位用户添加了隆鼻,我将在索引表中有三个条目。其他程序也是如此。
Procedure Name | User ID| ------------------------- Rhinoplasty 1 Rhinoplasty 2 Rhinoplasty 3 Adrenal Surgery 2 Adrenal Surgery 3 Angioplasty 1 And so on .
的问题,当一些用户尝试搜索程序(这导致他的配置文件)。他在上面写上“肾上腺手术”为“肾上腺手术”或“血管成形术”为“成形术”或“出现ACTH模拟测试“作为”ACTH的模拟测试“。某些时候,程序也可以具有同义词/首字母缩略词。
我理解停用词的概念。我可以在他们的下面定义常用词语,如“手术”和“测试”。剥离这些停用词的索引表并剥离搜索查询。
我该如何实现同义词?还有更好的方式来实现这样的搜索吗?我不认为我可以看看lucene或solr,因为它们是全文搜索引擎。
为什么不给每个程序添加标签?例如对于ACTH,标签可以是ACTH,模拟,测试..并且可以将每个过程的同义词作为标签添加 –
您写道,过程名称是预定义的,其中大约有1000个。你不能用两步选择(30x30)而不是搜索 - 用户选择一组相关的程序,然后选择该组的特定程序? (我知道这不能回答你的问题。) – Arvo