Solr数据导入处理程序中的文档静态字段

时间:2014-01-05 16:28:58

标签: solr dataimporthandler

我通过以下方式从db在solr中创建索引:

<document name="Index">  

<entity name="c" query="SELECT * FROM C">  

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

</entity>  

<entity name="p" query="SELECT * FROM P">  

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

</entity>  

</document>  

是否可以为每一行设置一个静态字段,表示返回给客户端的类型,以便可以根据json结果中的信息调用正确的数据库表?

这是表中没有列的字段

<field name="id" value="1"/> 

还是有另一种解决方法吗?

2 个答案:

答案 0 :(得分:0)

public static int[] fuel(int start, int[] sum, int counter) {
    int[] val = { sum[0] + crystal[start][0], sum[1] + crystal[start][1], sum[2] + crystal[start][2] };
    int newSum = val[0] + val[1] + val[2];

    if(newSum > 300) 
        return null;

    if(val[0] == val[1] && val[1] == val[2]) { // All 3 values have to be equal!
        if(newSum > result[0]) {
            result[0] = newSum;
            result[1] = counter;
        } else if(newSum == result[0] && result[1] > counter) {
            result[1] = counter;
        }
    }

    if(start + 1 < crystalNumber) {
        fuel(start + 1, val, counter + 1);
        fuel(start + 1, sum, counter);
    }

    return result;
}

答案 1 :(得分:0)

您可以在SQL查询中添加一列,其中包含如下所示的静态数据:

<document name="Index">  
  <entity name="c" query="SELECT *, 'foo' as NameFromC FROM C">  
    <field column="NameFromC" name="name"/>
  </entity>

  <entity name="p" query="SELECT *, 'bar' as NameFromP FROM P">  
    <field column="NameFromP" name="name"/>
  </entity>  
</document>

如果您尝试添加仅具有nametemplate属性的字段,Solr将抛出错误,提示 Field必须具有列属性