如果没有看到您的索引类型映射和示例数据,很难直接回答这个问题 - 但我会尝试。
顺便说一句,我想说这类似于这里的答案(https://stackoverflow.com/a/12867852/382774),您只需在映射中将该content
字段的index
选项设置为:not_analyzed
"url" : {
"type" : "string",
"index" : "not_analyzed"
}
编辑:我对我的原始答案不够清楚,如上所示。我并不是要暗示您应该将示例代码添加到您的查询中,我的意思是您需要在索引类型映射中指定该url
字段是类型string
并且它被索引但不被分析(not_analyzed
)。
这告诉 Elasticsearch 在您为文档编制索引时不要费心分析(标记化或标记过滤)该字段 - 只需将其存储在文档中存在的索引中即可。有关映射的更多信息,请参阅http://www.elasticsearch.org/guide/reference/mapping/了解介绍,了解http://www.elasticsearch.org/guide/reference/mapping/core-types/了解详情not_analyzed
(提示:在该页面上搜索它)。
更新:
官方文档告诉我们,在新版本的 Elastic 搜索中,您不能将变量定义为“not_analyzed”,而应使用“关键字”。
对于旧版本的弹性:
{
"foo": {
"type" "string",
"index": "not_analyzed"
}
}
对于新版本:
{
"foo": {
"type" "keyword",
"index": true
}
}
请注意,此功能(关键字类型)来自 elastic 5.0,并且从 Elasticsearch 6.0 版本中删除了向后兼容层。