我正在寻找单词"stud“,我期待着这个顺序的结果。
“职业”:“学生”
“职业”:“学生(人文医学)”
职业:“学生(鲍威森)”
“职业”:“学生(化学)”
“职业”:“学生(建筑师)”
“职业”:“Oberstudienrat/Oberstudienr tin”
“职业”:"Nagelstudioinhaber“
,但我得到了这个序列的结果,
“职业”:“学生”
“职业”:“学生(人文医学)”
“职业”:“Oberstudienrat/Oberstudienr tin”
职业:“学生(鲍威森)”
“职业”:“学生(化学)”
“职业”:"Nagelstudioinhaber“
“职业”:“学生(建筑师)”
就像这些单词“Oberstudienrat/Oberstudienr tin”一样,"Nagelstudioinhaber“应该在结尾,因为我首先想看到的结果在开头有"stud”,然后是中间有"stud“的结果。
{
"query":{
"bool":{
"must":[
{
"query_string":{
"query":"*Stud*",
"fields":[
"occupation"
]
}
}
]
}
},
"rescore":{
"window_size":500,
"query":{
"score_mode":"multiply",
"rescore_query":{
"bool":{
"should":[
{
"match":{
"occupation":{
"query":"Stud*",
"boost":3
}
}
}
]
}
},
"query_weight":2.7,
"rescore_query_weight":3.2
}}}
发布于 2019-06-25 08:33:15
在这里,如果您的字段被标记化,则很难实现对同一字段的排序。
修改字段以实现排序。该字段应该是原始类型的,或者只应用关键字记号器和小写标记器。不对原始字段进行分析,这意味着它总共将是一个术语,因此它可以用于排序。为了做到这一点,您必须更新您的映射,然后使用reindex api来更新数据。
您的字段将具有如下的映射
PUT my_index
{
"mappings": {
"properties": {
"city": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
}
}并使用新字段进行排序。
GET my_index/_search
{
"query": {
"match": {
"city": "york"
}
},
"sort": {
"city.raw": "asc"
}
}https://stackoverflow.com/questions/56733649
复制相似问题