【问题标题】:Elasticseach doesn't map all given fields [PHP]Elasticsearch 不会映射所有给定的字段 [PHP]
【发布时间】:2018-06-21 20:33:13
【问题描述】:

我正在使用 Elasticsearch-PHP 客户端。我想索引我的数据,但映射有问题。有一个问题:我创建了我的数据数组,一切正常,但是当我将此数组添加到我的索引body => my_data_array 时,会显示一些数据,但不是全部。我不知道为什么。我只是挖掘并尝试了以下所有步骤,但没有任何改变。

我刚刚附上了我的 sn-ps。

这是我的 controller 文件,我在其中索引数据:

    {

    $params = ['body' => []];

    foreach($all_ads as $key => $ads){

        $params['body'][] = [
            'index' => [
                '_index' => 'demo_data',
                '_type' => 'demo',
                '_id' => $ads->id
            ]
        ];

        $params['body'][] = $ads->indexParams();

    }

    $responses = $client->bulk($params);

这是结果 json 对象:

"response": [
    {
      "id": 85345,
      "old_id": "5088063",
      "user_id": "2706",
      "category_id": "15",
      "type": "3",
      "title": array[3],
      "slug": "",
      "sub_region_id": "8",
      "condition": "1",
      "username": "John Doe",
      "price": "82000",
      "price_type": "1",
      "no_phone": "0",
      "views": "29",
      "hot": "0",
      "vip": "0",
      "price_measure": "0"
   }

我有一个datafield,在这里看不到。 其data映射结构

'data'          => [
    'type' => 'object',
    'properties' => [
        'key_id'   => ['type' => 'integer'],
        'value_id' => ['type' => 'integer'],
        'key'      => ['type' => 'keyword'],
        'value'    => ['type' => 'keyword']
    ]
]

我该如何解决?

我只是从这里和 github 问题论坛检查了一些问题,但没有任何帮助。谢谢!

【问题讨论】:

  • 您使用的是动态映射还是手动映射?如果您在此处发布映射结构,将会有很大帮助。
  • @Toni 我使用手动映射。 Maan,结构太长,我固定了描述,类别,标题字段,是我的错。但是数据字段仍然没有出现。我只是在这里附上data 结构
  • 您可以创建具有映射结构的公共 gist 并在此处粘贴链接。

标签: php elasticsearch mapping


【解决方案1】:

您必须遵循问题的解决方案。它可能对你有帮助。

Elasticsearch mapping not working as expected

【讨论】:

  • 感谢您的回复,但我尝试了此解决方案。没有任何改变:(
猜你喜欢
  • 2021-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
  • 2017-10-13
  • 2017-05-25
  • 2013-01-01
  • 1970-01-01
相关资源
最近更新 更多