Я хочу заполнить датированные данные изasticsearch 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, я думаю, что есть проблема в конце таблиц данных при добавлении данных.
Любые идеи, что я делаю здесь неправильно.