CQ5 - 搜索 - 启用同义词匹配

时间:2014-03-11 19:24:29

标签: cq5 aem

非常感谢任何关于以下和相当简单的功能的帮助。我试图在CQ5中启用同义词匹配AEM和我一直在使用http://dev.day.com/docs/en/crx/current/developing/searching_in_crx.html作为指导。

我正在尝试创建一个同义词并让搜索工作也适用于#34;平板电脑"至于"画面"和" Tablette"。我创建了一个小的synonyms.properties文件,其中包含以下条目:

tablet=Tablette
tablet=tableau
Tablette=tablet 

(第三行是强制性的,因为它是第一行的对应物)。我也改编了worspace.xml和repository.xml:

synonyms.properties位于 C:\ TEMP \作者\ CRX-快速启动\库\工作空间\ crx.default \索引

worspace.xml位于 C:\ TEMP \笔者\ CRX-快速入门\库\工作区\ crx.default
已添加以下条目

<SearchIndex class="com.day.crx.query.lucene.LuceneHandler">
    <param name="path" value="${wsp.home}/index"/>
    <param name="resultFetchSize" value="50"/>
    <param name="synonymProviderClass" value="org.apache.jackrabbit.core.query.lucene.PropertiesSynonymProvider"/>
    <param name="synonymProviderConfigPath" value="synonyms.properties"/>
</SearchIndex>

repository.xml位于 C:\ TEMP \笔者\ CRX-快速入门\库
已添加以下条目

<SearchIndex class="com.day.crx.query.lucene.LuceneHandler">
    <param name="path" value="${wsp.home}/index"/>
    <param name="resultFetchSize" value="50"/>
    <param name="synonymProviderClass" value="org.apache.jackrabbit.core.query.lucene.PropertiesSynonymProvider"/>
    <param name="synonymProviderConfigPath" value="synonyms.properties"/>
</SearchIndex>

当我在平板电脑上搜索时,我得到了我的平板电脑,当我在画面上搜索时,我也得到了相应的条目,但肯定这2个关键字不被视为同义词。

有人可以确认配置的正确性以及是否可以添加其他调试?

非常感谢, Wim

1 个答案:

答案 0 :(得分:1)

我能够通过搜索Jackrabbit解决这个谜(因为AEM使用Apache Jackrabbit查询)。诀窍是使用波形符或〜字符。

假设您使用JCR-SQL2,只需使用以下语法:

SELECT productType FROM [nt:base] AS s WHERE ISDESCENDANTNODE([/content/mywebsite/en/products]) 
and contains(productType, '~tableau') 

我希望其他用户可以从这些信息中受益。 维姆