我想在 Elasticsearch 中搜索一个短语,例如“个人纳税日期”。我希望返回的结果更加重视“税”这个词。
到目前为止,我知道如何提升整个索引或提升不同字段,但仍然不知道如何提升不同的术语?有什么帮助吗??
我想在 Elasticsearch 中搜索一个短语,例如“个人纳税日期”。我希望返回的结果更加重视“税”这个词。
到目前为止,我知道如何提升整个索引或提升不同字段,但仍然不知道如何提升不同的术语?有什么帮助吗??
使用函数分数,我们可以通过字段提升
GET <index_name>/_search
{
"query": {
"function_score": {
"query": {
"query_string": {
"query": "*personal tax date*",
"fields": [
"field_1",
"field_2"
]
}
},
"boost": "5",
"functions": [
{
"filter": { "match": { "field": "tax" } },
"weight": 30
},
{
"filter": { "term": { "ent_name": "tax" } },
"weight": 25
}
],
"score_mode": "multiply",
"boost_mode": "sum"
}
}
您可以使用查询并使用查询字符串语法query_string
来提升术语,如下所示:
{
"query": {
"query_string": {
"query": "personal tax^2 date"
}
}
}