点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在尝试为某些表创建HANA FULLTEXT索引。 ( SAP Hana FULLTEXT索引)目标 使用它的目的是提高在具有大量行的表上进行搜索的性能。 主要问题是无法在-items.xml中声明这种特殊类型的索引。 我直接在HANA服务器上使用SQL创建了它,但是当Hybris运行updatesystem时,使用了错误的SQL语法,它给出了错误:
由以下原因引起:org.springframework.jdbc.BadSqlGrammarException:StatementCallback; 错误的SQL语法[DROP INDEX FULLTEXT_USER_NAME_1]; 嵌套的异常是com.sap.db.jdbc.exceptions.BatchUpdateExceptionSapDB:批处理命令编号1中的错误:SAP DBTech JDBC:[261]:无效的索引名称:全文索引只能由DROP FULLTEXT INDEX删除
所以我想知道以前是否有人解决过这个问题,因为自定义HanaSqlBuilder.java(在ybootstrap.jar内部)看起来像是一个非常深入的自定义。
谢谢罗萨诺
务实的解决方案是编写一个自定义@SystemSetup类,并使用本机SQL + jdbc创建索引。 仅供参考,该平台已经定义了一个Spring JDBC Template bean(
jdbcTemplate
),因此运行本机SQL很容易。items.xml中的索引定义不支持全文索引,因此最好将其排除在外。
编辑
要强制更新过程完全忽略索引,请使用属性
但是有一个陷阱:这将忽略所有索引,即使是items.xml中定义的那些索引。 现在完全由您决定创建索引。
如果您使用Hybris 6.7+,则杂乱无章的hybris更新将忽略HANA全文索引,而无需完全停用索引
您是否尝试过在updatesysem之前直接在HANA中删除索引?
嗨,Markus,谢谢您的留言。 我已经尝试了您的方法,但是问题是,当您启动updatesystem hybris时,它会尝试使用错误的语法删除索引。 因此,我尝试在Items.xml中强制创建索引,以避免尝试删除它。 但是,使用这种方法,您将无法在SystemSetup类中创建FULLTEXT索引,因为它已经存在。
啊! 升级过程总是尝试删除您的索引,即使未在items.xml中的任何位置定义索引,对吗?
是的,删除索引是可行的,但是我们要自动执行。 可能的解决方案可能是修改ant脚本并使用sql任务。
仅供参考,如果您将鼠标悬停在评论上方,则会显示"回复"按钮;)
一周热门 更多>