3

我有一堆使用关键字标记器索引的数据。

{
    state: open
    settings: {
        index.number_of_replicas: 0
        index.analysis.analyzer.default.type: keyword
        index.number_of_shards: 5
        index.version.created: 900599
    }
    mappings: {
        evenements: {
            properties: {
                prenom: {
                    type: string
                }
                nom: {
                    type: string
                }
                statut: {
                    type: string
                }
                fieldDate: {
                    format: dateOptionalTime
                    type: date
                }
            }
        }
    }
}

查询时

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "default_field": "evenements.prenom",
            "query": "*lex*"
          }
        }
      ]
    }
  }
}

我得到了结果,但是在查询时

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "default_field": "evenements.prenom",
            "query": "Alex*"
          }
        }
      ]
    }
  }
}

我没有得到任何结果(A ou a 而不是 first * 不会改变任何东西)。

对此有何解释?

谢谢。扬

4

1 回答 1

4

尝试将lowercase_expanded_terms查询字符串的属性设置为 false。默认情况下,此属性设置为 true 并可能导致您的行为。

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "lowercase_expanded_terms": false,
            "default_field": "evenements.prenom",
            "query": "Alex*"
          }
        }
      ]
    }
  }
}
于 2013-10-07T09:16:44.120 回答