ElasticSearch:是否可以突出显示查询中的单词而不是结果
ElasticSearch: is it possible to highlight words in the query rather than the results
我们使用 ElasticSearch 的方式与我通常看到的相反。我们存储了很多小文档,通常是 1 或 2 个单词,例如职位名称 "software engineering"、"car mechanics"、"architect" 等
然后我们使用更长的字符串进行查询,例如 1000 字的 Job Spec。这样我们就可以得到职位说明书文本中出现的所有职位。
效果很好。但我想知道是否可以让 ElasticSearch 突出显示职位规范中匹配的职位名称,即突出显示查询中的结果。我试过 highlight 关键字,但它没有突出显示查询文本,而是突出显示结果。我不确定如何让查询在 ElasticSearch 响应中返回,更不用说它是否可以突出显示了。
你可能想知道为什么我需要ElasticSearch来高亮查询,我不能直接从文本中挑出所有结果并自己高亮吗?是的,我可以,但是有很多事情需要考虑,这使得它变得困难,例如词干提取和停用词删除。例如,在 ElasticSearch 中进行标记化时,"jquery" 被提取为 "jqueri",因此结果找到了它,但如果我想自己突出显示它,我必须取消提取它以使其与原始文本匹配。 Elasticsearch 还删除了符号,因此 terms & conditions
会变成 terms conditions
如果我想手动突出显示它就会有问题,因为我必须加回“&”符号。还有上百个其他的问题案例,因此关于 ElasticSearch 是否可以为我做的问题。
我很确定突出显示查询字符串是不可能的 - 只能突出显示索引中的部分文档。
您可以尝试在它自己的索引中索引查询字符串本身,然后使用第一个查询的结果作为针对查询字符串的第二个查询的查询词(在第二个索引中)。然后您可以突出显示查询字符串。每次都需要向 ES 提出额外的请求,但我认为它会得到你想要的。
我们使用 ElasticSearch 的方式与我通常看到的相反。我们存储了很多小文档,通常是 1 或 2 个单词,例如职位名称 "software engineering"、"car mechanics"、"architect" 等
然后我们使用更长的字符串进行查询,例如 1000 字的 Job Spec。这样我们就可以得到职位说明书文本中出现的所有职位。
效果很好。但我想知道是否可以让 ElasticSearch 突出显示职位规范中匹配的职位名称,即突出显示查询中的结果。我试过 highlight 关键字,但它没有突出显示查询文本,而是突出显示结果。我不确定如何让查询在 ElasticSearch 响应中返回,更不用说它是否可以突出显示了。
你可能想知道为什么我需要ElasticSearch来高亮查询,我不能直接从文本中挑出所有结果并自己高亮吗?是的,我可以,但是有很多事情需要考虑,这使得它变得困难,例如词干提取和停用词删除。例如,在 ElasticSearch 中进行标记化时,"jquery" 被提取为 "jqueri",因此结果找到了它,但如果我想自己突出显示它,我必须取消提取它以使其与原始文本匹配。 Elasticsearch 还删除了符号,因此 terms & conditions
会变成 terms conditions
如果我想手动突出显示它就会有问题,因为我必须加回“&”符号。还有上百个其他的问题案例,因此关于 ElasticSearch 是否可以为我做的问题。
我很确定突出显示查询字符串是不可能的 - 只能突出显示索引中的部分文档。
您可以尝试在它自己的索引中索引查询字符串本身,然后使用第一个查询的结果作为针对查询字符串的第二个查询的查询词(在第二个索引中)。然后您可以突出显示查询字符串。每次都需要向 ES 提出额外的请求,但我认为它会得到你想要的。