【发布时间】:2016-11-02 01:57:38
【问题描述】:
我在弹性搜索中设置了以下记录
POST /books/book/1
{
"title" : "JavaScript: The Good Parts",
"author" : "Douglas Crockford",
"language" : "JavaScript",
"publishYear" : 2009,
"soldCopy" : "50"
}
POST /books/book/2
{
"title" : "JavaScript: The Good Parts",
"author" : "Douglas Crockford",
"language" : "JavaScript",
"publishYear" : 2009,
"soldCopy" : "110"
}
POST /books/book/3
{
"title" : "JavaScript: The Good Parts",
"author" : "Douglas Crockford1",
"language" : "JavaScript",
"publishYear" : 2011,
"soldCopy" : "2"
}
POST /books/book/4
{
"title" : "JavaScript: The Good Parts",
"author" : "Douglas Crockford2",
"language" : "JavaScript",
"publishYear" : 2012,
"soldCopy" : "5"
}
我正在使用以下弹性搜索查询根据给定的 2009 年获取不同的标题和作者。我期望的查询的输出是
JavaScript: The Good Parts Douglas Crockford
但在响应中,我得到了 2 条具有相同输出的记录,例如:
JavaScript: The Good Parts Douglas Crockford
JavaScript: The Good Parts Douglas Crockford
用于弹性搜索的查询是:
{
"query": {
"match": {
"publishYear": "2009" }
}
}
我尝试用数据库术语创建的等效选择查询是:
select distinct title,author from book where publishYear = '2009'
如何从弹性搜索中获得与我的 sql 查询相同的输出? 谢谢
【问题讨论】:
标签: elasticsearch