目前,我正在使用REST接口(interface)查询vespa,这似乎很好用,但有一点告诉我,我应该在应用程序中使用搜索器使客户端(服务器端代码)更轻巧(将jar文件 bundle 在应用程序包中) ),使其更加平滑。我设法做了一些简单的搜索器/处理器应用程序。但是,这有点让人不知所措。
那么,有没有现成的例子?
基本上我想:
/search?query=someId
"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/