【问题标题】:Solr dataimport handler querySolr 数据导入处理程序查询
【发布时间】:2014-02-04 15:45:04
【问题描述】:

我有一个数据导入处理程序:

<entity name="Categories" query="Select * From Categories">

  <field column="Name" name="categoryNgram"/>


    <entity name="CategorySynonyms" query="Select Synonym From CategorySynonyms Where CID='${Categories.Id}'">  

     <field column="Synonym" name="synonym"/>   

    </entity>

</entity>

数据库表具有以下值:

类别

身份证名称

1 类别1

类别同义词

CID

1 类别同义词1 1 类别同义词2

结果显示 Total Rows Fetched: 3

但是当我从索引 中选择全部时: 我只在结果中收到一行:

Category1 同义词Category1

在应该创建两个文档时只创建一个文档的语法有什么问题吗?

【问题讨论】:

    标签: solr dataimporthandler


    【解决方案1】:

    这是预期的,因为从数据库中提取的总行数为 3(1 来自表 Categories,2 来自 CategorySynonyms)。

    solr 中的文档总数为 1,也符合预期:

    Name:Category1,
    Synonym: CategorySynonym1,CategorySynonym2
    

    或许你可以试试

    <entity name="Categories" query="Select CID,Name,Synonym From Categories join CategorySynonyms on Id=CID">
      <field column="Name" name="categoryNgram"/>
      <field column="Synonym" name="synonym"/>   
    </entity>
    

    注意:您可能需要验证 SQL 查询以确保它返回一个 Id 字段和两行,如您所料。

    【讨论】:

    • 谢谢!您能解释一下为什么在获取 3 行时它预计只有 1 个文档吗?
    • 很高兴为您提供帮助! sql从顶层查询对应的文档数量,而嵌套的只扩展每个文档的内容,而不是新建文档。嗨
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多