拼写检查未在AEM 6.1中搜索

问题描述 投票:0回答:2

即使在创建了 - 中指定的建议索引后,拼写检查也无法在AEM 6.1中运行

https://docs.adobe.com/docs/en/aem/6-1/deploy/platform/queries-and-indexing.html

https://jackrabbit.apache.org/oak/docs/query/lucene.html

根据文档,自版本1.1.17和1.0.13以来,已在OAK中实施了spellcheck。我的OAK版本是1.22所以它应该工作.AEM版本是6.1.0.20150507

创建了一个像 - 的索引

/oak:index/lucene-spellcheck
  - jcr:primaryType = "oak:QueryIndexDefinition"
  - compatVersion = 2
  - type = "lucene"
  - async = "async"
  + indexRules
    - jcr:primaryType = "nt:unstructured"
    + nt:base
      + properties
        - jcr:primaryType = "nt:unstructured"
        + jcr:title
          - propertyIndex = true
          - analyzed = true
          - useInSpellcheck = true

当我使用CRX-DE的查询工具以及使用jsp中的查询管理器运行此查询时,我得到零结果。

SELECT [rep:spellcheck()] FROM nt:base WHERE [jcr:path] ='/ content / abc'AND SPELLCHECK('tetspage')

('testpage'是一个页面;拼错为'tetspage')

按照文档中的说明运行此查询

SELECT [rep:spellcheck()] FROM nt:base WHERE [jcr:path] ='/'AND SPELL CHECK('jackrabbit')

返回单个节点。

我做错了什么;这个指数适用于任何人的AEM 6.1吗?

lucene aem jackrabbit jackrabbit-oak
2个回答
1
投票

此查询适用于我

SELECT [rep:spellcheck()] FROM [nt:base] WHERE SPELLCHECK('tetspage') AND ISDESCENDANTNODE('/content/abc')

0
投票

我在“rep:suggest()”查询中遇到了类似的问题,而不是“rep:spellcheck()”,但也许该解决方案适合您。

当我直接在CRX DE中尝试查询时,结果是一个节点,我在该节点上看不到任何内容。但是,从我的代码执行查询我发现查询的结果存储为“行”。要处理“行”我使用此代码,希望它可以帮助您:

String sql = "SELECT [rep:suggest()] FROM cq:PageContent WHERE ISDESCENDANTNODE('" + path + "/') AND SUGGEST('" + text + "')";
Query q = qm.createQuery(sql, Query.SQL);

List<String> results = Lists.newArrayList();  // <--- Actual query results
RowIterator it = q.execute().getRows();
while (it.hasNext()) {
    Row row = it.nextRow();
    results.add(row.getValue("rep:suggest()").getString());
}
© www.soinside.com 2019 - 2024. All rights reserved.