目前,我正在使用REST接口(interface)查询vespa,这似乎很好用,但有一点告诉我,我应该在应用程序中使用搜索器使客户端(服务器端代码)更轻巧(将jar文件 bundle 在应用程序包中) ),使其更加平滑。我设法做了一些简单的搜索器/处理器应用程序。但是,这有点让人不知所措。

那么,有没有现成的例子?

基本上我想:

  • 发送到/search?query=someId
  • 在此documentID上进行加权集的常规搜索(我想这可能很方便:https://docs.vespa.ai/documentation/reference/inspecting-structured-data.html)
  • 将响应中的这些项目添加到魔杖项目中,并使用wandsearcher在给定字段上查询魔杖。与yql相似:"select * from sources * where wand(interest, some weightedsets));","ranking":"combined_score"并返回匹配项。

  • 也很好奇,除了我目前正在使用http请求进行字符串构建的麻烦之外,使用搜索器或使用Java路由还是使用rest可以提高性能吗?

    感谢您提供的任何见解或代码帮助。

    最佳答案

    这里有一个使用WandItem(YQL wand)的示例,在https://docs.vespa.ai/documentation/advanced-ranking.html上也可以看到https://docs.vespa.ai/documentation/using-wand-with-vespa.html,因为在Vespa中有两个可用的wand实现,从描述中听起来,wand()是您要在此用例中使用的。对于第一次调用,您可能希望有一个专用的文档摘要,以减少您的第一个查询获取的数据量,以及减少仅在内存中提供数据的选项(请参阅https://docs.vespa.ai/documentation/document-summaries.html)

    另请参阅https://docs.vespa.ai/documentation/searcher-development.html作为编写搜索器的常规资源。

    对于您的用例,编写一个搜索器来执行这两个查询非常有意义,因为您的第二个查询依赖于第一个查询,并且避免了渲染/ http / yql解析的开销,如果您的客户端位于具有高网络的远程位置,这可能会很重要潜伏。

    关于vespa - 在vespa中使用Wandsearcher的例子吗? (在加权集查询之后),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56615485/

    10-12 21:46