小编Lea*_*ira的帖子

如何使用过滤器脚本迭代elasticsearch中的嵌套数组?

我正在尝试过滤 Elasticsearch 中的嵌套字段。嗯,我需要根据某些规则归还某些文件。要重现我收到的错误,您可以参考以下示例:

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "user": {
        "type": "nested" 
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)
PUT my-index-000001/_doc/1
{
  "group": "fans",
  "user": [
    {
      "first": "John",
      "last": "Smith"
    },
    {
      "first": "Alice",
      "last": "White"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

可以看出,我们有一个对象数组(嵌套)。

我需要在嵌套字段上应用一个脚本,我可以在其中遍历用户数组。

例如我尝试过这个:

GET my-index-000001/_search
{
  "query": {
    "nested": {
      "path": "user",
      "query": {
        "bool": {
          "filter": [
            {
              "script": {
                "script": {
                  "inline": """
                  def users = doc['user'];
                  for ( int i = 0; i < users.size(); i++ ) { …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

5
推荐指数
1
解决办法
4767
查看次数

twisted.internet.error.ReactorAlreadyInstalledError:反应器已安装

当我多次运行爬网过程时出现此错误。我正在使用 scrapy 2.6 这是我的代码:

from scrapy.crawler import CrawlerProcess
from football.spiders.laliga import LaligaSpider
from scrapy.utils.project import get_project_settings

process = CrawlerProcess(settings=get_project_settings())
for i in range(1, 29):
    process.crawl(LaligaSpider, **{'week': i})
process.start()
Run Code Online (Sandbox Code Playgroud)

python scrapy

4
推荐指数
1
解决办法
5360
查看次数

标签 统计

elasticsearch ×1

python ×1

scrapy ×1