Skip to content

创建视频索引

Kyusong Lee edited this page Jun 4, 2021 · 17 revisions

本节将介绍如何使用SOCO Search创建一个基础的视频索引

准备视频数据

和创建图片数据集一致,您需要先将您想要索引的视频文件上传到服务器,获取他们的url。并确保这些url信息可以被SOCO访问以进行后续处理。

例如您现在有3个视频文件,他们的url分别为

(本例给出的并不是可访问的视频文件,请根据情况修改url来做测试)

您就可以创建如下的json代码来列出每段视频的url。

[
  {
    "url": "http://68.77.252.175:30041/video/sample_video_1.mp4"
  },
  {
    "url": "http://68.77.252.175:30041/video/sample_video_2.mp4"
  },
  {
    "url": "http://68.77.252.175:30041/video/sample_video_3.mp4"
  }
]

创建视频数据集

创建视频数据集的方式和创建图片数据集的方式一样,您只需在dashboard上创建新的数据集,并填入数据集名称和对应的jsonl代码,请参考图片索引的数据集创建部分

创建视频Mappings

{
    url: [
        {targetFieldName: "url", type: "keyword", configs: []},
        {
            targetFieldName: "tss",
            type: "term_score",
            configs: [
                {key: "plugin_api", value: "video_search_grpc"},
                {key: "q_processor", value: "tf_tokenize"},
                {key: "model_id", value: "bert-base-chinese"},
            ],
        },
    ]
}

我们把视频数据中的url作为源字段,并设定两个目标字段,一个作为关键字类型,一个为term_score类型

创建视频Index

完成了数据集和Mapping的设定,就可以开始创建索引了,只需输入index名称。并在mapping部分选择您所创建的mapping即可。 创建完成后,打开您所创建的索引,并在reindex界面选择您所创建的数据集,确认无误后点击reindex,然后等待索引完成吧。请参考图片索引的部分

测试视频Index

您可以在console界面或使用API直接测试索引好的index

查询示例

{
  "query": {
    "match": {
      "tss": ""
    },
    "include": [
      "tss",
      "url"
    ]
  }
}

输出示例

{
  "took": 0,
  "ranks": [
    {
      "_source": {
        "tss": {
          "球": 7.628842398498781,
          "内": 10.250266283552396,
          "昏": 1.725182349625662,
          "_timestamp_": 0.00008724380551949906,
          "[SEP]": 6.7982755509194766,
          "弓": 1.0541763774847968,
....
        },
        "_uid": "2466013306382878965",
        "url": "http://192.168.1.125:30041/video/sample_video.mp4"
      },
      "score": 2.154665
    }
  ],
  "reads": []
}

其中 "_timestamp_": 0.00008724380551949906部分为播放视频的时间戳,我们可以通过_timestamp_ * 1,000,000 来获取到搜索对应的视频结果的开始时间的秒数。

例如本例中开始的秒数为“0.00008724380551949906 * 1000000” 约为87.2秒,对应的搜索即为视频地址的开头87.2秒的部分