我有一个sphinx服务器为django应用程序索引mysql数据库。我的搜索工作正常,但我的内容包括医学词汇/短语。因此,例如,我需要搜索“dvt”以匹配“深静脉血栓形成”甚至“深静脉血栓形成”。我查看了文档并查看了“wordforms”和“morphology”的选项。我应该使用以下哪些(或其他)?什么会倒退?即搜索“深静脉血栓形成”/“深静脉血栓形成”将与“dvt”匹配。
此外,我很欣赏一些关于如何设置这些内容的建议,因为我一般都是狮身人面像的新手。
答案 0 :(得分:1)
您需要提供自己的单词/术语同义词列表,以便在查询扩展中使用。
由于Sphinx目前不支持查询中的同义词扩展,因此您需要在将查询提交给搜索引擎之前根据您的同义词列表按摩查询。
所以,使用你的例子:
用户查询:'dvt补救程序'。
服务器接收查询并根据其同义词列表检查每个术语。
服务器找到匹配项并添加“深静脉血栓形成”进行查询。
服务器向搜索引擎提交新扩展的查询“dvt深静脉血栓形成修复程序”。
最后,如果构建在Sphinx中的词干分析器正在完成它的工作,你不应该同时支持“静脉”和“静脉”作为单独的术语,因为它们都应该是同一个术语。如果不是这种情况,您可能需要进行额外的预先处理以处理特定于您的语料库的单词(医学术语)。