C# Net-创建比键/值更复杂的索引的好方法是什么?

C# Net-创建比键/值更复杂的索引的好方法是什么?,c#,lucene,full-text-search,lucene.net,C#,Lucene,Full Text Search,Lucene.net,我正在启动一个项目,在这个项目中,我们试图用Lucene.Net为XML文档的内容编制索引。在我发现的小文档中,索引似乎只能由具有单个字符串值的文件组成。我试图索引的数据比简单的键值对稍微复杂一些 下面是一个xml文档示例,我想从中生成索引: <descriptor> <asset guid="2AA7C8F9-2CB1-4A81-9421-C09F1D85939E" generated-date="2011-07-30" generated-by="hw/Auto

我正在启动一个项目,在这个项目中,我们试图用Lucene.Net为XML文档的内容编制索引。在我发现的小文档中,索引似乎只能由具有单个字符串值的文件组成。我试图索引的数据比简单的键值对稍微复杂一些

下面是一个xml文档示例,我想从中生成索引:

    <descriptor>
  <asset guid="2AA7C8F9-2CB1-4A81-9421-C09F1D85939E" generated-date="2011-07-30" generated-by="hw/AutoMfg" generated-with="PMS">

    <!-- information about where the asset can be used -->
    <target>
      <localization>en-us</localization>
      <localization>es-us</localization>
      <environment>desktop</environment>
      <environment>mobile</environment>
    </target>

    <!-- all contents of an asset must have the same version -->
    <version-information>
      <version-number source="content">9.1.123.4</version-number>
      <version-number source="manufacturing">9.1.123.4</version-number>
      <release-label>9.1</release-label>
    </version-information>

    <!-- catalog information about the primary role of the asset -->
    <role>
      <namespace>parent.type.family.some.thing</namespace>
      <mime-type>text/html</mime-type>
      <hwid>abc1234</hwid>
    </role>

  </asset>
</descriptor>

美国英语
我们
桌面
可移动的
9.1.123.4
9.1.123.4
9.1
父母、类型、家庭、某些东西
文本/html
abc1234
因此,我可以看到以“descriptor”的子元素命名的创建字段,但是其中的子节点呢?如何为这些数据编制索引?我应该创建一个分隔字符串来表示每个字段的值吗

乙二醇 字段:“目标”值:“本地化:en us;es us环境:桌面;移动|

我是否需要像上面的例子那样将数据展平以编制索引


谢谢!

给出具体的建议有点棘手——很多建议都是围绕着你想要检索什么以及如何检索而不是数据的形状。无论如何,我会从Simone Chiaretta在lucene.net上的优秀小系列开始()。一个非常有用的概念是,您可以为给定文档多次索引同一字段,因此您可能会做如下操作:

Target-Localization:en-us
Target-Localization:es-us
Target-Environment:desktop
Target-Environment:mobile

Lucene基本上是扁平的,但能够在以新的有趣的方式扁平的同时进行深度分析。

给出具体的建议有点棘手——很多建议都是围绕着你想要检索的内容和方式,而不是数据的形状。在任何情况下,我都会从Simone Chiaretta在Lucene.net上的优秀小系列开始()。一个非常有用的概念是,您可以为给定文档多次索引同一字段,因此您可能会做如下操作:

Target-Localization:en-us
Target-Localization:es-us
Target-Environment:desktop
Target-Environment:mobile
Lucene基本上是扁平的,但是能够以新的有趣的方式变深变平。

看看。Digester的.NET端口是

看看。Digester的.NET端口是