问题标签 [vespa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nosql - Vespa 与其他无 SQL 数据库
我已经浏览了一段时间的 Vespa 文档,但有兴趣了解 vespa 相对于 hbase 和 cassandra 作为键值存储的 no-sql db 的优缺点。我没有看到任何关于它的博客/帖子。
1)对于hbase,cassandra为了更好的性能推荐行大小不要超过1MB、32MB。大黄蜂呢?vespa 文件可以有多大,推荐的尺寸是多少?
2) Vespa 在哪里适合 CAP 定理?
vespa - 在 vespa 中启用 CORS
如何在 vespa 中启用 CORS?我想将我的 API 部署到招摇 UI,但由于 vespa 中禁用了 CORS,我无法执行此操作。有什么方法可以在 vespa 中启用 CORS,或者我应该如何在 swagger 中使用 API 来使用它?请帮忙。
cors - 如何在 Vespa 中添加自定义过滤器包以启用 CORS?
我已经关注了在 vespa 中启用 CORS的问题,并使用 RequestFilter 和 ResponseFilter 编写并构建了一个新的自定义“过滤器捆绑”包,该包添加了启用 CORS 的标头。这是我用于构建捆绑包的 pom.xml 文件
我将构建的 jar 包添加到我的“主”应用程序包的 /components 目录中,并按照链接https://docs.vespa.ai/documentation/jdisc/http-server-在我的 services.xml 文件中进行了建议的更改and-filters.html 我将以下 HTTP 标记添加到我的 services.xml 文件中。
这里的“MyRequestFilter”和“MyResponseFilter”是我的过滤器包中的类名(在应用程序/组件目录中的内置过滤器包 jar 中)。
遵循这些步骤给了我一个错误,即过滤器捆绑包的 jar 文件中的 MANIFEST.MF 文件中缺少一些标头,例如“Bundle-SymbolicName”、“Bundle-ManifestVersion”。所以我编辑了 MANIFEST.MF 文件以在https://docs.vespa.ai/documentation/bundle-plugin.html Edit-1: 添加“container-plugin”行正确生成 MANIFEST.MF 文件之后添加所需的标题
但是,在使用 jar 文件中的上述更改成功构建我的应用程序后,我仍然无法在对 Vespa 的请求或响应中看到添加的标头,并且仍然收到一个错误,即在 Vespa 上禁用了 CORS。
vespa - 自定义请求处理程序在启动时失败
我正在编写一个自定义 RequestHandler,从 ThreadedHttpRequestHandler 扩展,并且在运行后vespa-deploy prepare
日志vespa-deploy activate
显示重复出现的错误。
我的 services.xml 现在看起来像这样:
我已经尝试尽可能多地通过代码进行跟踪,并且看起来有一个针对Components
此异常来自的配置列表的检查,但我不清楚为什么我的 Handler 没有被它拾取。
vespa-deploy prepare
没有显示有关我的代码或配置结构的任何其他投诉。
yql - 如何在 Vespa 中 YQL 查询的搜索响应中获取结构类型映射的子字段?
样本数据:
预期反应:
我在搜索定义demo.sd中添加了以下内容:
我想写一个这样的yql查询(这不起作用):
我的临时解决方法
我在MySearcher.java中实现了一个自定义搜索器,通过它我可以提取所需的子字段并设置一个新字段“defaultLang”,并删除“Lang”字段。搜索者生成的响应:
我在 MySearcher.java 中编写了以下内容:
Edit-1:一种更有效的方法是使用 Inspectable 界面和 Inspector,就像上面一样(感谢@Jo Kristian Bergum)
但是,在上面的代码中,我必须遍历所有语言以过滤掉所需的语言。我想避免这种 O(n) 时间复杂性并利用映射结构在 O(1) 中访问它。(因为语言可能会增加到 1000 种,每次点击都会这样做。)
这一切都是由于我在结果中得到的StructuredData数据类型。StructureData 不保留地图结构,而是提供一个 JSON 数组,例如:
请提出一种更好的方法,或者对我目前的方法有任何帮助。两者都受到赞赏。
vespa - 在发送到 Vespa 之前,是否应该从文档中删除 ASCII 控制字符?
我正在尝试使用字符串字段将文档存储到 Vespa 中。使用 document-api http 端点时,它会因解析错误而被拒绝。我已经验证正在发送正确的 JSON(其他文档正常)。
这是我看到的错误消息:
我可以看到对这些类型的字符(在我的情况下为垂直选项卡)进行了检查com.yahoo.text.Text
,allowedAsciiChars
但我在文档中没有看到我应该在发送到 Vespa 之前剥离这些字符的任何地方。事实上,我看到了一种相反的情况,即 Vespa 会不遗余力地在幕后替换某些字符而不拒绝它们。
vespa - 关于使用空间词组语义规则的问题
我们参考https://docs.vespa.ai/documentation/reference/semantic-rules.html
当我们这样设置语句时:
有用。
然而,当我们试图这样陈述时:
当我们搜索它时它失败了。
您对使用空格设置术语有什么建议吗?
vespa - vespa 中是否有分面搜索的替代方法?
我正在评估 vespa,但在 vespa.ai 文档中找不到任何对分面搜索 ( https://lucidworks.com/2009/09/02/faceted-search-with-solr/ ) 的引用。vespa 中是否有类似的功能?
vespa - 如何在 Vespa 中以编程方式在搜索器中添加/删除数组/映射中的元素?
我想在 Vespa 的自定义搜索结果中将元素添加到数组中,或者从我的地图中删除一些键。
例如:我在搜索者的点击中有以下字段:
我想将值 (3, 4) 附加到我的数组并从我的地图中删除一个键 (key2),在结果命中中,返回:
我已关注参考链接Inspecting Structured Data,但无法从我创建的 Inspector 对象中添加或删除条目。我不想为我的数组/结构创建一个新的 SlimeAdapter 对象。因为这需要完全遍历数组并将单个条目添加到我想要避免的新对象中。
请提出相同的方法。
vespa - vespa 中某个字段的不同值
我正在使用 vespa 查看一些数据。考虑以下数据
id product brand
1 a b1
2 b b1
3 c b1
4 d b2
5 e b3
我尝试分组以显示来自品牌字段的数据。我有一个价格字段,我写了一个这样的查询
SELECT * FROM s_data where default contains "soap" | all(group(brand) each(output(sum(price))));
基本上,我不想计算价格的总和,我想要的只是来自“品牌”字段的不同值。有没有办法在 vespa 中做到这一点?