Hana文本搜索不同的表与不同的权重

时间:2015-02-13 13:21:16

标签: hana

我们想知道 SAP Hana 是否支持对文本位于不同表格中的实体进行文本搜索(例如,实体"产品42" 引用一个表A中的文本和表B)中的两个文本。我们希望根据找到此命中的表格为每个匹配分配不同的权重,例如:当在表A中找到搜索词时,这比在表B中找到的值更多。

似乎使用谓词" contains()" 这无法实现。 " SAP HANA搜索开发人员指南" [1]在第46页上指出 contains()中列出的所有列都必须属于同一个表。

是否有"应用功能库" (AFL)为文本搜索提供了这样的功能吗?

谢谢你,亲切的问候,迈克尔

[1] http://help.sap.com/hana/SAP_HANA_Search_Developer_Guide_en.pdf,文件版本:1.0 - 2014-11-26。

2 个答案:

答案 0 :(得分:0)

同时我发现用Hana加权文本搜索可以实现如下:

  • 创建属性视图,其中包含来自不同表的相关文本列。

  • 确保选择所有文本属性/列作为输出,即当时,它们应出现在“列”下的“输出”视图中在视图“Scenario”中选择“数据基础”。您可能还希望至少有一个键属性作为输出。

  • 点击“列”下的“输出”中的每个文字属性。此属性的属性应显示在视图“Property”中。在此视图中选择标签“搜索属性”并将属性“自由式搜索”设置为“True”,然后输入属性值 “排名权重”

在此之后,您可以使用带有SQL的此属性视图执行文本搜索,例如:

SELECT score(), key_attribute ... 
       FROM "_SYS_BIC"."SOME.PACKAGE/MY_ATTRIBUTE_VIEW" 
       WHERE contains( ( attribute1, attribute2, ... ), 'search term' )
       ...
       ORDER by score() DESC;

请注意 FROM子句和搜索字词周围使用的不同类型的引号。

答案 1 :(得分:0)

您还可以创建搜索规则集(在搜索开发者指南中引用),以便为每列添加不同的权重和模糊阈值。搜索规则集将引用属性视图,在属性视图中可以包含多个表