我有一堆使用关键字tokenizer索引的数据。
{
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*"
}
}
]
}
}
}
我没有得到任何结果(不是第一个*不会改变任何东西)。
对此有何解释?
感谢。 晏
答案 0 :(得分:4)
尝试将查询字符串的lowercase_expanded_terms
属性设置为false。默认情况下,此属性设置为true,可能会导致您遇到的行为。
{
"query": {
"bool": {
"must": [
{
"query_string": {
"lowercase_expanded_terms": false,
"default_field": "evenements.prenom",
"query": "Alex*"
}
}
]
}
}
}