2015-12-14 31 views
0

我試圖從elasticsearch實例運行函數到datatables來顯示結果。Elasticsearch Datatables

我只得到10來顯示,而且無論查詢我總是得到相同的10。目前在elasticsearch中有141,000個結果,但只能在數據表中讀取10個結果。

<script src="//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.8/js/jquery.dataTables.min.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.8/js/dataTables.bootstrap.min.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.8/js/dataTables.jqueryui.min.js"></script> 
<script src="//cdn.datatables.net/responsive/1.0.6/js/dataTables.responsive.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/datatables/1.10.8/js/dataTables.bootstrap.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/elasticsearch/10.0.1/elasticsearch.min.js"></script> 
<script src="/javascript/jquery.elastic-datatables.js"></script> 
<script> 
    var client = elasticsearch.Client({ 
     host: 'localhost:9200' 
    }); 


    $('#orders').dataTable({ 
     'bProcessing': true, 
     'bServerSide': true, 
     'columns': [ 
      { 'sTitle': 'Order Code', 'sName': 'channel_order_code' }, 
      { 'sTitle': 'Created', 'sName': 'created_at' }, 
      { 'sTitle': 'Order ID', 'sName': 'po_number' }, 
      { 'sTitle': 'Tracking', 'sName': 'tracking' }, 
      { 'sTitle': 'Name', 'sName': 'bill_to_name' }, 
      { 'sTitle': 'Phone', 'sName': 'customer_phone' }, 
      { 'sTitle': 'Email', 'sName': 'customer_email' }, 
      { 'sTitle': 'Group ID', 'sName': 'group_id' }, 
      { 'sTitle': 'Order Status', 'sName': 'status' }, 
      { 'sTitle': 'Upload Status', 'sName': 'upload_status' }, 
      { 'sTitle': 'Subtotal', 'sName': 'subtotal_amount' }, 
      { 'sTitle': 'Shipping', 'sName': 'channel' }, 
      { 'sTitle': 'State', 'sName': 'state' } 
     ], 
     'fnServerData': $.fn.dataTable.elastic_datatables({ 
      index: 'orders', 
      type:'logs', 
      client, 
      body: { 
       query: { 
        match_all: { 

        } 
       } 
      } 
     }) 
</script> 

當我去的網址,並輸入/命令/ _search?Q = *我得到充分的結果,但是,通過這次我得到10.當我把_search或「型」搜索我什麼都不要,當我刪除'類型'我得到相同的10.

任何幫助表示讚賞。

這是使用用於jquery.elastic-datatables.js https://github.com/pidupuis/elastic-datatables

回答

0

10的包是從Elasitcsearch返回的結果的默認號碼。

查詢ES直接,你可以增加結果的數量與size或加用from偏移:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html

請不要忘記默認的最大尺寸10.000。如果您需要更大的數據,請使用from。儘管如此,您可以從index.max_result_window設置更改最大大小。

基於這裏的描述:https://github.com/pidupuis/elastic-datatables/你不需要惹直接在ES查詢size/from,並且可以通過指定aoData.length參數DataTables要求n結果。

您應該能夠通過包括aoData.start參數請求下一nhttps://github.com/pidupuis/elastic-datatables/blob/7bb98580add1c3b58fdf776426606c5fe65a1deb/src/jquery.elastic-datatables.js#L33-L34

+0

我知道我不應該但我仍然得到僅有10結果,對數據表的頁腳計數應顯示從匹配ES,並正在顯示10個條目中的第1至10個。即使我手動使用尺寸/設置。 –

+0

我能夠重現這一點。作爲請求的一部分,我沒有看到「POST」正文轉到ES,這會導致您描述的行爲。你是否看到你的目的? –

+0

我沒看到帖子在我的結尾 –