Node.js 使用NodeJS客户端在ElasticSearch中进行排序
我试图根据字段对查询结果进行排序,但由于某些原因,它从未正确排序。以下是查询的示例:Node.js 使用NodeJS客户端在ElasticSearch中进行排序,node.js,sorting,
elasticsearch,Node.js,Sorting,
elasticsearch,我试图根据字段对查询结果进行排序,但由于某些原因,它从未正确排序。以下是查询的示例: starting request { "method": "POST", "path": "/index/library/_search", "query": { "from": 0, "size": 10, "sort": "[{\"title\":{\"order\":\"asc\"}}]", "q": "\"rules\""
starting request {
"method": "POST",
"path": "/index/library/_search",
"query": {
"from": 0,
"size": 10,
"sort": "[{\"title\":{\"order\":\"asc\"}}]",
"q": "\"rules\""
}
}
这将生成此URL:
我尝试了许多不同的排序结构,但不管出于什么原因,它永远不会按字母顺序返回
排序部分的结构是否有误?还是我遗漏了什么
编辑:
search(type, query, options) {
let params = {
index: this.indexName,
type: type,
from: options.from || 0,
size: options.size || 500,
sort: options.sort
};
if (JSON.parse(query).hasOwnProperty('query')) {
params.body = query;
} else {
params.q = query;
}
return this.client.search(params);
}
查询:
Elasticsearch DEBUG: 2017-05-04T15:55:00Z
starting request {
"method": "POST",
"path": "/index/library/_search",
"query": {
"from": 0,
"size": 10,
"sort": "title : asc",
"q": "rules"
}
}
Elasticsearch TRACE: 2017-05-04T15:55:00Z
-> POST http://localhost:9200/index/library/_search?
from=0&size=10&sort=title%20%3A%20asc&q=rules
请尝试以下方法:
starting request {
"method": "POST",
"path": "/index/library/_search",
"query": {
"from": 0,
"size": 10,
"sort": "title:asc", <---- change this
"q": "rules"
}
}
启动请求{
“方法”:“发布”,
“路径”:“/索引/库/_搜索”,
“查询”:{
“from”:0,
“尺寸”:10,
“sort”:“title:asc”,是的,我也尝试过。似乎也不起作用。你能显示你的相关代码以及你正在使用的Node.js模块吗?我在上面添加了代码。使用elasticsearch.js 12.1.3这是我一次做两件事得到的;)它是一个对象属性:“sort”:${sort}:asc
其中sort是我要排序的字段的标题。