当前位置: 首页 > 知识库问答 >
问题:

从PHP通过curl在ElasticSearch中点击0次,所有点击都来自命令行

羊舌自强
2023-03-14

我运行以下PHP:

function curl_delete($url)
{
    $ch = curl_init();
    curl_setopt_array($ch, 
    [
        CURLOPT_CUSTOMREQUEST => 'DELETE',
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true
    ]);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

function curl_put($url, $data)
{
    $ch = curl_init();
    curl_setopt_array($ch, 
    [
        CURLOPT_CUSTOMREQUEST => 'PUT',
        CURLOPT_URL => $url,
        CURLOPT_HTTPHEADER =>
        [
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data),
        ],
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_RETURNTRANSFER => true
    ]);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

function curl_post($url, $data)
{
    $ch = curl_init();
    curl_setopt_array($ch, 
    [
        CURLOPT_POST => true,
        CURLOPT_URL => $url,
        CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_RETURNTRANSFER => true
    ]);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

echo curl_delete('localhost:9200/my_index?pretty');
echo curl_put('localhost:9200/my_index?pretty', '{"settings": {"number_of_shards": 1}}');
echo curl_post('localhost:9200/my_index/my_type/_bulk?pretty', '
{ "index": { "_id": 1 }}
{ "title": "The quick brown fox" }
{ "index": { "_id": 2 }}
{ "title": "The quick brown fox jumps over the lazy dog" }
{ "index": { "_id": 3 }}
{ "title": "The quick brown fox jumps over the quick dog" }
{ "index": { "_id": 4 }}
{ "title": "Brown fox brown dog" }
');
echo curl_post('localhost:9200/my_index/my_type/_refresh?pretty', '{}');
echo curl_post('localhost:9200/my_index/my_type/_search?pretty', '{}');

我得到以下没有命中的输出:

{
  "acknowledged" : true
}
{
  "acknowledged" : true,
  "shards_acknowledged" : true
}
{
  "took" : 92,
  "errors" : false,
  "items" : [
    {
      "index" : {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "1",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "created" : true,
        "status" : 201
      }
    },
    {
      "index" : {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "2",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "created" : true,
        "status" : 201
      }
    },
    {
      "index" : {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "3",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "created" : true,
        "status" : 201
      }
    },
    {
      "index" : {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "4",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "created" : true,
        "status" : 201
      }
    }
  ]
}
{
  "_index" : "my_index",
  "_type" : "my_type",
  "_id" : "_refresh",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}
{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  }
}

“D:\Program Files\curl\bin\curl.exe”-XpostLocalHost:9200/my_index/my_type/_search?pretty“-h”content-type:application/json“-d”{}“

我得到了所有的点击率,因为我应该:

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "hits" : {
    "total" : 4,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "title" : "The quick brown fox"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "title" : "The quick brown fox jumps over the lazy dog"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "3",
        "_score" : 1.0,
        "_source" : {
          "title" : "The quick brown fox jumps over the quick dog"
        }
      },
      {
        "_index" : "my_index",
        "_type" : "my_type",
        "_id" : "4",
        "_score" : 1.0,
        "_source" : {
          "title" : "Brown fox brown dog"
        }
      }
    ]
  }
}

有人能告诉我最后一行PHP有什么问题吗?为什么没有点击?

共有1个答案

屠昌胤
2023-03-14

在运行批量查询时,可以看到所有文档都已创建。但是,索引还没有刷新,因此在立即运行搜索时不会获得任何点击量。

您可以做的是在搜索之前调用refresh,如下所示:

echo curl_post('localhost:9200/my_index/_refresh', '{}');

或者简单地向批量调用添加refresh参数,如下所示:

echo curl_post('localhost:9200/my_index/my_type/_bulk?pretty=true&refresh=true', ...

然后您可以正常发出搜索查询:

echo curl_post('localhost:9200/my_index/my_type/_search?pretty', '{}');
 类似资料:
  • 有没有一种方法来检测PHP中超文本标记语言按钮的点击,或者我真的需要在元素周围放一个表单标记,并使其成为一个输入提交按钮。 提前谢谢。

  • 问题内容: 我正在尝试通过Selenium进行网络抓取。我的问题很简单:如何找到链接,然后如何单击它?例如:以下是我要网页抓取的HTML: 因此,如您所见,“详细信息”是一个链接。 如何使用Selenium找到该链接并单击它? 问题答案: 您可以使用: 例如: 要单击它,只需调用click方法:

  • 问题内容: 在通过SearchQuery进行搜索时,我试图查看和使用每个匹配项的_score。除了别的以外,这还可以知道我的搜索在哪个分数范围内。但是除了使用searchQuery.withMinScore(float)设置MinScore之外;我找不到任何方法来处理搜索分数。 使用的搜索功能来自org.springframework.data.elasticsearch.repository;

  • 问题内容: 下面是我的部分代码,但我的问题很简单,当用户单击“我”时如何对我的函数说data-id =“ 1” ? 问题答案: 由于您已经在使用ES6- 在这里使用箭头功能可能会更干净一些:

  • 我正在尝试在React中构建我的第一个计算器。我的纽扣似乎有问题(我想)。在测试s时,我发现我第一次点击添加按钮不会更新所有setState。相反,第二次单击会正确更新它。 知道它为什么不起作用吗? 我有一个名为“DaInserting”的div,当用户点击任何数字键时会更新,然后当用户点击加法/减法/等时,应该更新,但它没有。它在第二次点击时更新:-检查。 当用户点击加法/减法后,DaInser

  • 本文向大家介绍jquery实现点击页面计算点击次数,包括了jquery实现点击页面计算点击次数的使用技巧和注意事项,需要的朋友参考一下 代码很简单,这里就不多废话了,直接奉上: 代码就到这里了,希望小伙伴们喜欢。