在两个实体中搜索

时间:2011-10-17 14:33:26

标签: solr

我是solr的新手。我创建了两个不相关的独立实体。

在db-data-config.xml

<entity name="vtab" query="select pid as id, pname as name from ptab order by name asc">
    <field column="panchayat_id" name="panchayat_id" />
    <field column="name" name="name" />
</entity>
<entity name="ptab" query="select vid as id, vname as name from vtab order by name asc">
    <field column="id" name="vid" />
    <field column="name" name="name" />
</entity>

在scheme.xml中

<fields>
    <field name="id" type="string" indexed="true" stored="true"/>
<field name="name" type="text" indexed="true" stored="true" />
</fields>
<uniqueKey>id</uniqueKey>
<defaultSearchField>name</defaultSearchField>

使用此配置成功创建索引。我想按名字搜索。如果我在查询中提供名称,我想从任何找到记录的表中获取它。使用上面的配置,我只从vtab获取记录。在ptab中没有搜索任何记录。请指导我哪里出错了。

2 个答案:

答案 0 :(得分:0)

问题解决了。我已经将“id”声明为主键,这是重复的。我与id-table_name一起创建了另一个字段并将其设置为主键。它现在正常工作。谢谢Jayendra Patil先生。

答案 1 :(得分:0)

您已将vtab实体命名为ptab,反之亦然 您是否可以添加到名为vtab的实体并检查它们是否已正确编入索引 这些ID是独一无二的吗?如果id是重复的,它们将相互覆盖。 理想情况下,它应该跨两个搜索