Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将php elasticsearch与具有正斜杠的字段一起使用_Php_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Php,elasticsearch" /> elasticsearch,Php,elasticsearch" />

如何将php elasticsearch与具有正斜杠的字段一起使用

如何将php elasticsearch与具有正斜杠的字段一起使用,php,elasticsearch,Php,elasticsearch,我使用的是php elsticsearch,我需要搜索包含多个以“/”分隔的值的记录。e、 g“/COLL/EC/SUP_B1N/TEAM_B1N_02”和“/COLL/EC/SUP_B1N/TEAM_B1N_01”。 它们保存为单个字符串。 我需要在查询中使用它们来获取$accessgroups='/COLL/EC/SUP_B1N/TEAM_B1N_02',但使用弹性搜索的所有记录。 accessgroups变量是从一个值填充的,我刚刚在这里添加了一个示例 $accessgroups = &q

我使用的是php elsticsearch,我需要搜索包含多个以“/”分隔的值的记录。e、 g“/COLL/EC/SUP_B1N/TEAM_B1N_02”和“/COLL/EC/SUP_B1N/TEAM_B1N_01”。 它们保存为单个字符串。 我需要在查询中使用它们来获取$accessgroups='/COLL/EC/SUP_B1N/TEAM_B1N_02',但使用弹性搜索的所有记录。 accessgroups变量是从一个值填充的,我刚刚在这里添加了一个示例

$accessgroups = "/COLL/EC/SUP_B1N/TEAM_B1N_02";
$params = [
  "index" => "calls",
    "size" => 10000,
    'body'  => [
     'query' => [
         'bool' => [
             'must' => [
                 [ "match" => [ 'accessgroups'=> $accessgroups ] ],
                            ],
             "filter" => [
               [ "range" => [  "start" => [ "gte" => $startTime, "lte" => $endTime ]]],
             ]
             ]
         ]
     ]
       ];
但它会返回访问组字符串中出现任何值的所有记录。 如果我只是使用“/COLL/EC/SUP_B1N”,我仍然得到返回的“/COLL/EC/SUP_B1N/TEAM_B1N_02”。 我需要一个精确的匹配,这是我认为我的查询应该做的。
非常感谢您的帮助。

所以我不熟悉您正在使用的库,但我过去曾与elasticsearch合作过。我想不起细节了,因为它已经有几年了,但看起来您使用的是必须匹配查询。我相信有一种必须匹配所有查询类型。此外,如果您的客户还没有准备好,您可能需要考虑扩展/以使数据更易于使用