0

假设我有一个带有自由文本字段的文档,该字段将描述企业所属的分支类型:

示例 1:“专注于医疗保健解决方案的 IT 咨询”

示例 2:“为美国境内的在线客户提供财务建议”

我想对 Solr 或 Lucene 进行的操作是提取文本中描述的业务操作分类,并考虑潜在的同义词。所以第一个例子变成了这样的图:信息技术 <-[in]- Consulting -[on]-> HeathCare

示例 2 是:财务 <-[in]- 咨询

咨询或建议等操作是同义词,具体取决于上下文。

4

1 回答 1

1

对于同义词,设置分析器以使用SynonymFilterFactory并在同义词文件中,例如

<filter class="solr.SynonymFilterFactory" synonyms="business-synonyms.txt" ignoreCase="true" expand="true" />

该文件看起来像:

IT,information technology
advising,consulting

等等。尽管使用“IT”和不区分大小写,它可能会扩展“it”这个词的正常使用范围,因此您可能需要试验什么最适合您的数据。

如果同义词需要上下文,那么它会变得更加棘手。


其次,要仅索引您感兴趣的内容,您可以使用KeepWordFilterFactory。您需要在文本文件中列出您对索引感兴趣的所有单词。


此设置将为您感兴趣的所有关键字(包括同义词)创建一个索引。因此,您将能够搜索特定业务类型,例如“IT 咨询医疗保健”,Solr 将能够使用同义词及其评分系统检索匹配项。

于 2013-10-10T15:30:48.423 回答