Фильтр диапазона не работает для оператора "gt", но работает для "lt" - PullRequest
0 голосов
/ 13 июня 2018

Я использую эластичный поиск для индексации своих документов и хотел отфильтровать документы по определенному свойству.Вот мой код:

filter.push({
            range: {"audience.ethnicity.asian" : { gt: 50 } }
        })

Он не работает с оператором gt (отправляет результаты, которые не соответствуют), но работает с оператором lt

filter.push({
                range: {"audience.ethnicity.asian" : { lt: 50 } }
            })

Это работает на удивление.Я дважды проверил, что значение свойства является целым числом.Я пробовал много разных способов, но не могу понять, что мне не хватает.Картография:

  "audience": {
    "properties": {
      "age": {
        "properties": {
          "13-17": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "18-24": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "25-34": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "35-44": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "45-64": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "eighteen": {
            "type": "long"
          },
          "fortyfive": {
            "type": "long"
          },
          "thirteen": {
            "type": "long"
          },
          "thirtyfive": {
            "type": "long"
          },
          "twentyfive": {
            "type": "long"
          }
        }
      },
      "ages": {
        "properties": {
          "13-17": {
            "type": "float"
          },
          "18-24": {
            "type": "float"
          },
          "25-34": {
            "type": "float"
          },
          "35-44": {
            "type": "float"
          },
          "45-64": {
            "type": "float"
          }
        }
      },
      "ethnicity": {
        "properties": {
          "African American": {
            "type": "float"
          },
          "Asian": {
            "type": "float"
          },
          "Hispanic": {
            "type": "float"
          },
          "White / Caucasian": {
            "type": "float"
          },
          "african": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "asian": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "hispanic": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "white": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      },
      "gender": {
        "properties": {
          "female": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "male": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      },
      "genders": {
        "properties": {
          "FEMALE": {
            "type": "float"
          },
          "MALE": {
            "type": "float"
          }
        }
      },
      "gendersPerAge": {
        "properties": {
          "13-17": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "18-24": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "25-34": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "35-44": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "45-64": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          }
        }
      }
    }
  }          "audience": {
    "properties": {
      "age": {
        "properties": {
          "13-17": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "18-24": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "25-34": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "35-44": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "45-64": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "eighteen": {
            "type": "long"
          },
          "fortyfive": {
            "type": "long"
          },
          "thirteen": {
            "type": "long"
          },
          "thirtyfive": {
            "type": "long"
          },
          "twentyfive": {
            "type": "long"
          }
        }
      },
      "ages": {
        "properties": {
          "13-17": {
            "type": "float"
          },
          "18-24": {
            "type": "float"
          },
          "25-34": {
            "type": "float"
          },
          "35-44": {
            "type": "float"
          },
          "45-64": {
            "type": "float"
          }
        }
      },
      "ethnicity": {
        "properties": {
          "African American": {
            "type": "float"
          },
          "Asian": {
            "type": "float"
          },
          "Hispanic": {
            "type": "float"
          },
          "White / Caucasian": {
            "type": "float"
          },
          "african": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "asian": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "hispanic": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "white": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      },
      "gender": {
        "properties": {
          "female": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "male": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      },
      "genders": {
        "properties": {
          "FEMALE": {
            "type": "float"
          },
          "MALE": {
            "type": "float"
          }
        }
      },
      "gendersPerAge": {
        "properties": {
          "13-17": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "18-24": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "25-34": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "35-44": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          },
          "45-64": {
            "properties": {
              "FEMALE": {
                "type": "float"
              },
              "MALE": {
                "type": "float"
              }
            }
          }
        }
      }
    }
  }

1 Ответ

0 голосов
/ 14 июня 2018

В вашем отображении поле audience.ethnicity.asian имеет тип text, следовательно, запрос диапазона выполняет сравнение лексического диапазона вместо сравнения числового диапазона .

Численно, 123> 50, но лексически 123 <50, потому что символ ASCII 1 стоит перед 5, это именно та проблема, от которой вы здесь страдаете. </p>

Я не уверен, что вы можете использовать audience.ethnicity.Asian поле, которое является поплавком.Если нет, вам нужно изменить отображение audience.ethnicity.asian на числовой тип (integer, float и т. Д.) И переиндексировать данные.

...