使用Lucene索引XML(DITA)文件并查询属性值
我们正在尝试使用Lucene在AEM中实现XML(DITA)文件的复杂索引。目前,全文索引支持搜索 例如: 在下面的文档中,提取所有文本并编制索引,以便于对文档内容进行全文查询使用Lucene索引XML(DITA)文件并查询属性值,xml,lucene,aem,dita,Xml,Lucene,Aem,Dita,我们正在尝试使用Lucene在AEM中实现XML(DITA)文件的复杂索引。目前,全文索引支持搜索 例如: 在下面的文档中,提取所有文本并编制索引,以便于对文档内容进行全文查询 <concept id="lawnmowerconcept" xml:lang="en-us"> <title>Lawnmower</title> <conbody product="mower25h"> <p>The lawnmower is a ma
<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搜索。例如:
- 用户可以通过元素名称进行搜索。e、 g.el:conbody-这应该只返回包含
元素的文档 - 用户可以通过属性名称进行搜索。例如@product=“%”–这应该只返回至少对其一个元素应用了product属性的文档。注意,我们不关心这个属性的值
- 用户可以通过属性名称-值对进行搜索。例如@product=“mower25h”-这应仅返回将product属性应用于其至少一个元素且值为mower25h的文档
- 继续使用全文索引,但使用自定义Lucene分析器保留XML标记。例如,
将被分解为割草机
,而无需去除特殊字符、割草机、
- 使用自定义分析器创建新的全文索引,该分析器剥离所有文本内容,仅对元素、属性名称和属性值进行索引。有可能有两个索引的交集吗?
例如,像el:p=%剪草机%这样的查询将返回上述文档,因为它有一个带有剪草机文本的
元素 - 或者我应该完全避免AEM Lucene,最好选择像Solr这样的外部索引