我正在执行一个匹配的文本字段(技能)。我不想一个完全匹配,相反,我想余弦相似性为基础的搜索字段。
GET 2/_search
{
"_source": ["Skills"],
"query": {
"function_score": {
"query": {
"match": {
"Job_Group": "sales"
}
},
"functions": [
{
"filter": {
"match":{
"Skills":"Designation"
}
},
"weight": 15
}
]
}
}
}
上面的查询是为了精确匹配。我如何包括一些语义搜索(基于技能字段查询中的余弦相似性)。技能字段是自由文本字段,所以我希望匹配也基于它们的语义含义发生。例如---技能-交流和交谈应该反映一些相似性并提高分数。
1条答案
按热度按时间ukdjmx9f1#
很简单- Elastic Package 了Lucene,Lucene有More-Like-This实现了TF-IDF(更准确地说是BM 25)和一些额外的智慧。试试看,它会给你很好的相似性结果。Explanation可以在这个链接和其他链接中找到。