假设我有一个带有自由文本字段的文档,该字段将描述企业所属的分支类型:
示例 1:“专注于医疗保健解决方案的 IT 咨询”
示例 2:“为美国境内的在线客户提供财务建议”
我想对 Solr 或 Lucene 进行的操作是提取文本中描述的业务操作分类,并考虑潜在的同义词。所以第一个例子变成了这样的图:信息技术 <-[in]- Consulting -[on]-> HeathCare
示例 2 是:财务 <-[in]- 咨询
咨询或建议等操作是同义词,具体取决于上下文。
假设我有一个带有自由文本字段的文档,该字段将描述企业所属的分支类型:
示例 1:“专注于医疗保健解决方案的 IT 咨询”
示例 2:“为美国境内的在线客户提供财务建议”
我想对 Solr 或 Lucene 进行的操作是提取文本中描述的业务操作分类,并考虑潜在的同义词。所以第一个例子变成了这样的图:信息技术 <-[in]- Consulting -[on]-> HeathCare
示例 2 是:财务 <-[in]- 咨询
咨询或建议等操作是同义词,具体取决于上下文。
对于同义词,设置分析器以使用SynonymFilterFactory并在同义词文件中,例如
<filter class="solr.SynonymFilterFactory" synonyms="business-synonyms.txt" ignoreCase="true" expand="true" />
该文件看起来像:
IT,information technology
advising,consulting
等等。尽管使用“IT”和不区分大小写,它可能会扩展“it”这个词的正常使用范围,因此您可能需要试验什么最适合您的数据。
如果同义词需要上下文,那么它会变得更加棘手。
其次,要仅索引您感兴趣的内容,您可以使用KeepWordFilterFactory。您需要在文本文件中列出您对索引感兴趣的所有单词。
此设置将为您感兴趣的所有关键字(包括同义词)创建一个索引。因此,您将能够搜索特定业务类型,例如“IT 咨询医疗保健”,Solr 将能够使用同义词及其评分系统检索匹配项。