CAPM:HANA上来自自定义处理程序的模糊搜索和视图使用

2020-08-14 21:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 亲爱的同事, 我正在尝...

         点击此处--->   EasySAP.com群内免费提供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模糊搜索的任何信息。

2条回答
浮生未央
2020-08-14 22:08 .采纳回答

您好,Semyon,

如果您已经发现cds流利的api不支持模糊搜索,那么您可以使用如下所示的必需HANA SQL命令:

 db。  run(`SELECT" $ {this.sequence}"。NEXTVAL FROM DUMMY`)

从下面的博客中摘录,由于不支持数据库序列,我提供了解决方法。

https://blogs.sap.com/2020/07/04/ cap-using-hana-db-sequence/

一周热门 更多>