如何索引具有相同标签但不同值的solr中的xml

时间:2017-01-27 04:34:10

标签: solr

xml有两组具有不同数据的类似标签。

<address>
    <door_num>100</door_num>
    <street>hundred street</street>
    <city>XYZ</city>
</address>
<address>
    <door_num>200</door_num>
    <street>two hundred street</street>
    <city>ABC</city>
    <active>1</active>
</address>

对此进行索引的最佳方法是什么?按door_num 100和城市XYZ搜索必须返回文件;而按door_num 100和城市ABC搜索不得返回任何文件。存储为多值对此没有帮助。还要注意,带有door_num 200的第二组地址可能存在也可能不存在于xml中。请建议

1 个答案:

答案 0 :(得分:0)

将此数据建模为nested documents,地址信息将存储在嵌套文档中,然后您可以查询它们,以便door_num和city都需要在同一嵌套文档上匹配。

关于如何实际将它们放入索引中,您有以下几种选择:

  1. 用SolrJ写一些java(或groovy或任何其他jvm lang)代码,在客户端构建你的文档,然后将它们编入索引。
  2. 如果您不喜欢java,您仍然可以在客户端编写任何其他lang代码,并将您的文档构建为Solr可以摄取的xml / json,并将其编入索引。
  3. 如果您根本不想编写任何代码,请尝试使用DIH and XPathEntityProcessor,您可能会达到所需的一切。