【发布时间】:2016-07-11 09:54:28
【问题描述】:
我开始学习 Solr(使用 5.5.0 版)。我正在使用 managed-schema 和 data-congif.xml 文件来分析两个 sql server 表:Company & Contact。
我能够从 UI 执行数据导入,一次选择一个实体。
这是我收到的公司信息:
索引已完成。添加/更新:8,293 个文档。删除了 0 个文档。 (时长:01s) 请求:1 (1/s),获取:8,293 (8,293/s),跳过:0,处理:8,293 (8,293/s) 开始:不到一分钟前
这是我收到的联系人信息:
索引已完成。添加/更新:81 个文档。删除了 0 个文档。 请求:1,获取:81,跳过:0,处理:81 开始时间:不到一分钟前
当我单击“查询”部分时,我想执行查询以查看所有联系人和/或公司记录,不一定要合并,但只能查询它们。
我不确定如何执行此操作,是否可以获得一些帮助以了解如何指定要针对哪个实体执行查询?
这是我修改的 2 个文件:
data-cofig.xml:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://sql.server.com\test;databaseName=test"
user="testusr"
password="testpwd"/>
<document>
<entity name="Company" pk="CompanyID" query="SELECT * FROM tblCompany">
<field column="CompanyID" name="company_companyid"/>
<field column="Name" name="company_name"/>
<field column="Website" name="company_website"/>
<field column="Description" name="company_description"/>
<field column="NumberOfEmployees" name="company_numberofemployees"/>
<field column="AnnualRevenue" name="company_annualrevenue"/>
<field column="YearFounded" name="company_yearfounded"/>
</entity>
<entity name="Contact" pk="ContactID" query="SELECT * FROM tblContact">
<field column="ContactID" name="contact_contactid"/>
<field column="FirstName" name="contact_firstname"/>
<field column="MiddleInitial" name="contact_middleinitial"/>
<field column="LastName" name="contact_lastname"/>
<field column="Email" name="contact_email"/>
<field column="Description" name="contact_description"/>
</entity>
</document>
</dataConfig>
托管模式:
<!-- Company Begin -->
<field name="company_companyid" type="string" indexed="true"/>
<field name="company_name" type="string" indexed="true"/>
<field name="company_website" type="string" indexed="true"/>
<field name="company_description" type="string" indexed="true"/>
<field name="company_numberofemployees" type="string" indexed="true"/>
<field name="company_annualrevenue" type="string" indexed="true"/>
<field name="company_yearfounded" type="string" indexed="true"/>
<!-- Company End -->
<!-- Contact Begin -->
<field name="contact_contactid" type="string" indexed="true" />
<field name="contact_firstname" type="string" indexed="true"/>
<field name="contact_middleinitial" type="string" indexed="true"/>
<field name="contact_lastname" type="string" indexed="true"/>
<field name="contact_email" type="string" indexed="true"/>
<!-- Contact End -->
更新
我尝试使用 fl 字段选择 company_companyid,但没有得到任何结果。
我包括一个屏幕截图:
【问题讨论】:
-
只是为了确保我理解,您希望能够执行查询并获取例如与联系人实体相关的字段?
-
我希望能够根据需要执行查询并获取公司或联系人的字段,而不是组合。查询公司字段或查询联系人字段。我希望这是有道理的。谢谢。