我在显示搜索结果时对不同的类别进行评级时遇到了问题,希望您能帮助我。假设我搜索了“shoes”,而这个词存在于不同的cat中:中鞋男鞋中鞋女鞋中鞋童鞋中鞋运动鞋我将在搜索结果中显示最多3个类别。在Elasticsearch中,我如何对它们进行评分?或使用哪些因素进行评分?
zysjyyx41#
"size": 3, "query": { "match": { "categories": "shoe" } } }
lhcgjxsq2#
如果您能提供更多关于您的数据的信息,或者至少您的弹性索引社区中的数据字段可以更有效地帮助您。由于没有更多关于您的数据/索引的信息,我假设您的索引中有两个字段,一个是product_name,它可能包含产品名称和其他详细信息,另一个是category,它当然会包含产品所属的类别。例如-
{ "product_name" : "shoes - Midnight Blue" "category" : ["Women's Shoes", "Women's Clothing"] ----> This document belongs to women's category. }
现在,据我所知,您正在查找相应类别中product_name以上类别,并希望提供一些权重,因此下面查询将适合您请根据您索引进行测试并在此处提供建议
GET ecommerce_data/_search { "query": { "function_score": { "query": { "match": { "product_name": "shoes" } }, "functions": [ { "filter": { "match":{ "category":"children's" } }, "weight": 3 }, { "filter": { -----> Above document will match this filter "match":{ "category":"women's" } }, "weight": 2 }, { "filter": { "match":{ "category":"men's" } }, "weight": 1 } ], "score_mode": "max", "boost_mode": "replace" } }, "_source": ["product_name","category"] -----> Verify with limited fields. }
2条答案
按热度按时间zysjyyx41#
lhcgjxsq2#
如果您能提供更多关于您的数据的信息,或者至少您的弹性索引社区中的数据字段可以更有效地帮助您。由于没有更多关于您的数据/索引的信息,我假设您的索引中有两个字段,一个是product_name,它可能包含产品名称和其他详细信息,另一个是category,它当然会包含产品所属的类别。例如-
现在,据我所知,您正在查找相应类别中product_name以上类别,并希望提供一些权重,因此下面查询将适合您请根据您索引进行测试并在此处提供建议