【发布时间】:2017-01-25 04:45:25
【问题描述】:
我们使用 ElasticSearch 的方式与我通常看到的相反。我们存储了大量的小文档,通常是 1 或 2 个单词,例如“软件工程”、“汽车修理工”、“建筑师”等职位名称。
然后我们使用更长的字符串进行查询,例如 1000 字的 Job Spec。通过这种方式,我们可以得到职位规范文本中出现的所有职位。
效果很好。但我想知道是否可以让 ElasticSearch 突出显示职位规范中匹配的职位,即突出显示查询中的结果。我试过highlight 关键字,但它没有突出显示查询文本,而是突出显示结果。我不确定如何在 ElasticSearch 响应中返回查询,更不用说它是否可以突出显示。
您可能想知道为什么我需要 ElasticSearch 来突出显示查询,我不能从文本中挑选出所有结果并自己突出显示吗?是的,我可以,但是有很多事情需要考虑,比如词干和停用词删除。例如,在 ElasticSearch 中进行标记时,“jquery”被提取为“jqueri”,因此可以找到它,但如果我想自己突出显示它,我必须将其取消提取,使其与原始文本匹配。 Elasticsearch 还删除了符号,因此 terms & conditions 将变为 terms conditions 如果我想手动突出显示它,这是有问题的,因为我必须添加回“&”符号。还有一百个其他问题案例,因此关于 ElasticSearch 是否可以为我做这件事的问题。
【问题讨论】:
-
很好的问题。现在就开始工作 - 分析操作可以帮助您获得弹性搜索所看到的确切令牌,但您必须使用应用程序层来对自己进行映射。根据查询的复杂性,这可能非常具有挑战性。