为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在elasticsearch索引上使用AJAX和PHP实现实时搜索

是否可以在elasticsearch索引上使用AJAX和PHP实现实时搜索

小怪兽爱吃肉 2023-09-04 16:55:29
我正在尝试使用 PHP 和 AJAX 制作一个网络应用程序。它应该从 Elasticsearch 检索数据而不刷新页面(实时搜索)。是否可以在elasticsearch索引上实现这样的检索?为此,我制作了这两个文件:index2.php<?php    session_start();?><html> <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>Ajax-Trials</title>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> </head> <body>  <div class="container">   <br />   <h2 align="center">Ajax Live Data Search using Jquery, PHP, Elasticsearch</h2><br />   <div class="form-group">    <div class="input-group">     <span class="input-group-addon">Search</span>     <input type="text" name="search_text" id="search_text" placeholder="Search by Customer Details" class="form-control" />    </div>   </div>   <br />   <div id="result"></div>  </div> </body></html><script>$(document).ready(function(){ load_data(); function load_data(query) {  $.ajax({   url:"fetch2.php",   method:"POST",   data:{query:query},   success:function(data)   {    $('#result').html(data);   }  }); } $('#search_text').keyup(function(){  var search = $(this).val();  if(search != '')  {   load_data(search);  }  else  {   load_data();  } });});</script>
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您的 JSON 格式显示返回的数据是一个对象。要访问对象值,请编写以下代码:


foreach($results as $r)

{

 $output .= '

 <tr>

<td>'.$r->_id.'</td>

<td>'.$r->_source->name.'</td>

<td>'.$r->_source->countrycode.'</td>

<td>'.$r->_source->district.'</td>

<td>'.$r->_source->population.'</td>

</tr>

';

}

正如你所看到的,我使用 -> (对象)而不是 [] (数组)


查看完整回答
反对 回复 2023-09-04
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我刚刚从搜索字段中删除了“人口”字段,它就起作用了。Elasticsearch 无法从数字字段中搜索数字输入。



查看完整回答
反对 回复 2023-09-04
  • 2 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信