elasticsearch Elasticsearch逐字段增强,通配符和显式字段匹配冲突,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch逐字段增强,通配符和显式字段匹配冲突,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch逐字段增强,通配符和显式字段匹配冲突

elasticsearch Elasticsearch逐字段增强,通配符和显式字段匹配冲突,elasticsearch,elasticsearch,Elasticsearch中的一些查询为具有提升的字段提供通配符匹配,例如。 在我们的用例中,我们希望提升特定字段,同时给所有其他字段打0分。我们认为这可以通过以下示例查询模式实现: GET /kibana_sample_data_ecommerce/_search { "profile": "true", "query": { "simple_query_string": { "

Elasticsearch中的一些查询为具有提升的字段提供通配符匹配,例如。 在我们的用例中,我们希望提升特定字段,同时给所有其他字段打0分。我们认为这可以通过以下示例查询模式实现:

GET /kibana_sample_data_ecommerce/_search
{
  "profile": "true",
  "query": {
    "simple_query_string": {
      "query": "Eddie",
      "fields": [
        "*^0",
        "customer_full_name^100"
      ]
    }
  }
}
但是,如果多个字段定义通过通配符匹配相同的字段名,则它们的提升值会相乘。上述示例将为所有文档生成0分,即使它们在
customer\u full\u name
字段中包含标记“Eddie”

以下示例演示了助推器的倍增:

GET /kibana_sample_data_ecommerce/_search
{
  "profile": "true",
  "query": {
    "simple_query_string": {
      "query": "Eddie",
      "fields": [
        "*^0.1",
        "customer_full_name^100"
      ]
    }
  }
}
在查询的概要文件解释中,它导致表达式
(客户全名:eddie)^10.0


这是否意味着不可能通过实地推进来实现我们所期望的结果?期望的结果是:特定字段中的所有匹配项的分数乘以100,而在其他字段中匹配的所有文档仍然返回,但分数为0。

在Elasticsearch的逻辑中,我猜分数
0
意味着它一点也不成功。您是否尝试过使用带有两个单独
simple\u query\u string
查询和单个字段的布尔查询?分数0并不意味着在这种情况下它不成功,没有加工术语的文档将不会返回。感谢布尔查询包装的想法,在我们的用例中,这是一个可行的解决方法。:-)不,不是在这种情况下。但是我想说的是,给一些东西增加
0
可能不是我的开发人员想要的,因为这样的原因:)我很高兴我能给一个解决办法的冲动。在Elasticsearch的逻辑中,我猜分数
0
意味着它一点也不成功。您是否尝试过使用带有两个单独
simple\u query\u string
查询和单个字段的布尔查询?分数0并不意味着在这种情况下它不成功,没有加工术语的文档将不会返回。感谢布尔查询包装的想法,在我们的用例中,这是一个可行的解决方法。:-)不,不是在这种情况下。但是我想说的是,给一些东西增加
0
可能不是我的开发人员想要的,因为这个原因:)不过,我很高兴我能给大家一个解决办法的冲动。