我们正在尝试使用Lucene在AEM中实现XML(DITA)文件的复杂索引。现在,全文索引支持搜索。
例如: 在下面的文档中,所有文本均被提取并建立索引,以方便对文档内容进行全文查询。
<concept id="lawnmowerconcept" xml:lang="en-us">
<title>Lawnmower</title>
<conbody product="mower25h">
<p>The lawnmower is a machine used to cut grass in the yard. Lawnmowers can be electric, gas-powered, or manual.</p>
</conbody>
</concept>
现在,要求是还允许进行专门的XML搜索。例如:
<conbody>
元素的文档。实现的最佳方法是什么?
继续使用全文本索引,但使用自定义的Lucene Analyzer保留XML标记。例如。 <title>Lawnmower</title>
将分解为<title>, Lawnmower, </title>
,而不会除去特殊字符。
使用自定义分析器创建一个新的全文本索引,该分析器将剥离所有文本内容,并且仅索引元素,属性名称和属性值。两个索引可以交集吗?
例如像el:p =%lawnmower%这样的查询将返回上面的文档,因为它有一个带有割草机文本的<p>
元素。
还是我应该完全避免使用AEM Lucene,而最好选择像Solr这样的外部索引?