上海网站建设 浦东,在线音乐网站开发,钙网logo免费设计在线生成,百度推广seo优化Elastic Learned Spare EncodeR (ELSER) 允许你执行语义搜索以获得更相关的搜索结果。 然而#xff0c;有时#xff0c;将语义搜索结果与常规关键字搜索结果相结合以获得最佳结果会更有用。 问题是#xff0c;如何结合文本和语义搜索结果#xff1f;
首先#xff0c;让我…
Elastic Learned Spare EncodeR (ELSER) 允许你执行语义搜索以获得更相关的搜索结果。 然而有时将语义搜索结果与常规关键字搜索结果相结合以获得最佳结果会更有用。 问题是如何结合文本和语义搜索结果
首先让我们看一下对某些字段使用 multi_match 的花园品种文本查询。 这种搜索具有关键字搜索的典型陷阱即关键字必须以某种形式存在于要返回的文档中并且我们没有考虑用户搜索内容的上下文。
POST search-national-parks/_search
{query: {multi_match: {query: Where can I see the Northern Lights?,fields: [title, description]}},_source: [title]
}
现在让我们看看 ELSER 查询本身
POST search-national-parks/_search
{query: {bool: {should: [{text_expansion: {ml.inference.title_expanded.predicted_value: {model_id: .elser_model_2,model_text: Where can I see the Northern Lights?}}},{text_expansion: {ml.inference.description_expanded.predicted_value: {model_id: .elser_model_2,model_text: Where can I see the Northern Lights?}}}]}},_source: [title]
}
在上面我们使用 ELSER 来对文章进行语义搜索。如果你对 ELSER 还不是很熟的话请参阅如下的文章 Elasticsearch部署 ELSER - Elastic Learned Sparse EncoderR Elasticsearch使用 ELSER v2 文本扩展进行语义搜索
组合这两个查询的第一种方法是使用称为线性提升的策略。 在此示例中我们正在提升文本搜索结果以便它们具有优先级。 根据你正在运行的查询这可能是理想的也可能不是理想的。
POST search-national-parks/_search
{query: {bool: {should: [{text_expansion: {ml.inference.title_expanded.predicted_value: {model_id: .elser_model_2,model_text: Where can I see the Northern Lights?,boost: 1}}},{text_expansion: {ml.inference.description_expanded.predicted_value: {model_id: .elser_model_2,model_text: Where can I see the Northern Lights?,boost: 1}}},{multi_match: {query: Where can I see the Northern Lights?,fields: [title,description],boost: 4}}]}},_source: [title]
}
最后我们还可以使用倒数排名融合RRF将文本搜索结果与语义结果结合起来并对返回的搜索结果重新评分
POST search-national-parks/_search
{sub_searches: [{query: {multi_match: {query: Where can I see the Northern Lights?,fields: [title,description]}}},{query: {text_expansion: {ml.inference.title_expanded.predicted_value: {model_id: .elser_model_2,model_text: Where can I see the Northern Lights?}}}},{query: {text_expansion: {ml.inference.description_expanded.predicted_value: {model_id: .elser_model_2,model_text: Where can I see the Northern Lights?}}}}],rank: {rrf: {window_size: 10,rank_constant: 20}},_source: [title, states]
}
这些示例应该可以帮助你开始为你的用例创建最相关的搜索结果的旅程