Hana 文本搜索具有不同权重的不同表
Hana Text Search over different tables with different weights
我们想知道 SAP Hana 是否支持对文本在不同 table 中的实体进行文本搜索(例如实体 "Product 42" 引用 table A 中的一个文本和 table B 中的两个文本)。我们希望根据发现此命中的 table 为每个命中分配不同的权重,例如当在 table A 中找到搜索词时,这比在 table B.
中找到的搜索词更重要
好像用谓词"contains()"这个是实现不了的。 "SAP HANA Search Developer Guide" [1] 在第 46 页指出 contains() 中列出的所有列必须属于同一个 table.
是否有 "Application Function Library" (AFL) 提供此类文本搜索功能?
谢谢你和亲切的问候,迈克尔
[1] http://help.sap.com/hana/SAP_HANA_Search_Developer_Guide_en.pdf, 文档版本: 1.0 - 2014-11-26.
同时我发现用Hana进行加权文本搜索可以实现如下:
创建一个属性视图,其中包含来自不同表的相关文本列。
确保选择所有文本 attributes/columns 作为输出,即它们应该出现在 "Output" 下的视图中 "Columns" 当在视图 "Scenario" 中选择 "Data Foundation" 时。您可能还希望至少有一个关键属性作为输出。
单击"Output"下"Columns"视图中的每个文本属性.此属性的属性应显示在视图 "Property" 中。 Select 选项卡 "Search Properties" 并将 属性 "Freestyle Search" 设置为 "True" 并输入 属性 "Weights for Ranking".
的值
在此之后,您可以使用此属性视图和 SQL 执行文本搜索,例如:
SELECT score(), key_attribute ...
FROM "_SYS_BIC"."SOME.PACKAGE/MY_ATTRIBUTE_VIEW"
WHERE contains( ( attribute1, attribute2, ... ), 'search term' )
...
ORDER by score() DESC;
请注意 FROM 子句 和搜索词周围使用的不同类型的引号。
您还可以创建一个搜索规则集(在搜索开发人员指南中引用)来为每列注释不同的权重和模糊度阈值。搜索规则集将引用属性视图,在属性视图中您可以包含多个表
我们想知道 SAP Hana 是否支持对文本在不同 table 中的实体进行文本搜索(例如实体 "Product 42" 引用 table A 中的一个文本和 table B 中的两个文本)。我们希望根据发现此命中的 table 为每个命中分配不同的权重,例如当在 table A 中找到搜索词时,这比在 table B.
中找到的搜索词更重要好像用谓词"contains()"这个是实现不了的。 "SAP HANA Search Developer Guide" [1] 在第 46 页指出 contains() 中列出的所有列必须属于同一个 table.
是否有 "Application Function Library" (AFL) 提供此类文本搜索功能?
谢谢你和亲切的问候,迈克尔
[1] http://help.sap.com/hana/SAP_HANA_Search_Developer_Guide_en.pdf, 文档版本: 1.0 - 2014-11-26.
同时我发现用Hana进行加权文本搜索可以实现如下:
创建一个属性视图,其中包含来自不同表的相关文本列。
确保选择所有文本 attributes/columns 作为输出,即它们应该出现在 "Output" 下的视图中 "Columns" 当在视图 "Scenario" 中选择 "Data Foundation" 时。您可能还希望至少有一个关键属性作为输出。
单击"Output"下"Columns"视图中的每个文本属性.此属性的属性应显示在视图 "Property" 中。 Select 选项卡 "Search Properties" 并将 属性 "Freestyle Search" 设置为 "True" 并输入 属性 "Weights for Ranking".
的值
在此之后,您可以使用此属性视图和 SQL 执行文本搜索,例如:
SELECT score(), key_attribute ...
FROM "_SYS_BIC"."SOME.PACKAGE/MY_ATTRIBUTE_VIEW"
WHERE contains( ( attribute1, attribute2, ... ), 'search term' )
...
ORDER by score() DESC;
请注意 FROM 子句 和搜索词周围使用的不同类型的引号。
您还可以创建一个搜索规则集(在搜索开发人员指南中引用)来为每列注释不同的权重和模糊度阈值。搜索规则集将引用属性视图,在属性视图中您可以包含多个表