elasticsearch - 数据表 fnServerData 下的 ElasticSearch API
问题描述
我想从 elasticsearch js api 填充数据表数据。为此,我有这样的代码。
var oTable = $('#myTable').dataTable({
columns: [
{ title: "Title" }
],
'bProcessing': true,
'bServerSide': true,
"bPaginate": true,
"bSort": false,
"asStripeClasses": [],
"fnServerParams": function (aoData) {
aoData.push(
{"name":"search", "value": $('#title_search').val()},
);
},
'fnServerData': function (sSource, aoData, fnCallback) {
var searchval,sortval,sortorder;
aoData.map(function(i) {
var search = i.name;
if(search =='search') {
searchval = i.value;
}
});
/*Query ElasticSearch */
client.search({
index: indexname,
type: indextype,
from: 0,
size: 10,
body: {
query: {
"query_string": {
"query": searchval + '*',
"fields": ["title", "number"]
}
}
}
}, function (error, response) {
fnCallback(response);
});
}
});
我能够从上述调用中获取结果。但是,当我尝试在数据表中搜索时,结果会附加到每个字母搜索中。
function search(e) {
otTable.fnDraw();
}
例如,我尝试搜索London
. 当我输入 L 时,它附加所有以字母 L 开头的结果,当我输入 O 时,它再次附加所有以 . 开头的结果Lo
。
我从 ES 得到了正确的响应,我认为附加数据时数据表结束时存在问题。
任何想法我在这里做错了什么。
解决方案
推荐阅读
- oracle - 为什么当我运行这个程序时它要求我绑定变量?
- mongodb - MongoDB 拒绝连接
- javascript - 当我使用重定向时,为什么我的组件不会重新呈现?
- mysql - group_concat 在多个连接上工作不正确
- javascript - 当导航选项卡位于其中时,引导滚动模式不起作用
- r - 如何按组/子集进行 Leave One Out 交叉验证?
- java - 什么是 Java 中的“单代”垃圾收集器?
- python - ValueError:在 if 语句中对已关闭文件的 I/O 操作
- python - Django Elastic Search: Elastic returns nothing
- matplotlib - 如何保存由 matplot 生成的交互式绘图