我尝试使用elasticsearch使用通配符(使用*)进行自动完成功能的查询。
它与bool query
一样合适(值可以包含*):
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": value
}
}
]
}
}
}
但现在我只想搜索某些字段(T_FAMILY
或T_GENUS
或T_SCIENTIFICNAME
)中的输入值,并使用通配符$和*:
{
"fields": [
"T_FAMILY",
"T_GENUS",
"T_SCIENTIFICNAME"
],
"query": {
"filtered": {
"filter": {
"or": [
{
"term": {
"T_FAMILY": value
}
},
{
"term": {
"T_GENUS": value
}
},
{
"term": {
"T_SCIENTIFICNAME": value
}
}
]
}
}
}
}
查询工作但通配符没有。
我找不到原因。
映射中的3个字段为analyzed
。