点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
亲爱的同事,
我正在尝试在CAP项目中使用模糊搜索功能,并尝试执行以下操作:
1)使用构建查询
let query = cds.parse.cql("从块中进行选择{*,TO_DECIMAL(SCORE(),3,2)作为得分}包含(文本,'TargetText',FUZZY(0.8,'textSearch = compare, andThreshold = 0.3'))");
但是查看内部函数_handleContains(),我发现不支持模糊,仅支持LIKE语句。
2)我创建了.hdbview
查看块模糊(在SEARCH NVARCHAR(5000)中)作为选择块ID 从块 哪里包含(RAWTEXT,:SEARCH,FUZZY(0.8,'textSearch = compare,Threshold = 0.3'));
模式和服务中的对应实体
schema.cds
entity BlocksFuzzy(SEARCH:String){ 密钥block_ID:UUID @ odata.Type; }
service.cds
从实体BlocksFuzzy(SEARCH::SEARCH)中选择的实体BlocksFuzzy(SEARCH:String){*};
有了这些,我设法建立了一个我可以请求使用的OData实体集,并且该实体正在工作
../BlocksFuzzy(SEARCH ='TargetText')/Set
现在,我尝试在我的一个自定义处理程序中使用此功能,但无法在参数化的实体上执行select:
SELECT.from(BlocksFuzzy).where({SEARCH:{" =":'文本'}}) SELECT.from(" BLOCKSFUZZY('TargetText')") 等。
在这种情况下,请提供可能的解决方案。
我非常感谢您提供有关如何在CAP中使用HANA模糊搜索的任何信息。
您好,Semyon,
如果您已经发现cds流利的api不支持模糊搜索,那么您可以使用如下所示的必需HANA SQL命令:
从下面的博客中摘录,由于不支持数据库序列,我提供了解决方法。
https://blogs.sap.com/2020/07/04/ cap-using-hana-db-sequence/
是的,支持常规SQL命令。
感谢提供正确的API信息。
一周热门 更多>