【发布时间】:2020-04-22 15:35:45
【问题描述】:
我在我的 MySQL 数据库中有一个视图,并使用 DIH 构建了一个 Solr 索引的 POC。在我的直接选择查询中,有 6 条记录,但 Solr 查询只返回 4 条(尽管它确实说它已获取 6 条记录)。
MySql 视图
CREATE VIEW FORUMS_SURVEYS AS
SELECT F.TITLE, F.DESCRIPTION, F.CREATED, FC.TYPE, FC.SUBTYPE FROM FORUM F JOIN FORUM_CATEGORY FC ON F.FORUM_CATEGORY_ID=FC.ID
UNION ALL
SELECT S.TITLE, S.DESCRIPTION, S.DATED AS CREATED, "" AS TYPE, "" AS SUBTYPE FROM SURVEY S;
从视图中选择
select * from FORUMS_SURVEYS;
Result - Fetched Rows: 6 (as expected)
在 Solr 上运行 DIH
db-data-config.xml
<dataConfig>
<dataSource driver="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/bjm" user="<user>" password="<password>" />
<document>
<entity name="forums_surveys" query="SELECT * FROM forums_surveys" transformer="HTMLStripTransformer">
<field column="TITLE" name="title" indexed="true" type="text" />
<field column="DESCRIPTION" name="description" indexed="true" type="text" stripHTML="true"/>
<field column="CREATED" name="created" indexed="true" type="text" />
<field column="TYPE" name="type" indexed="true" type="text" />
<field column="SUBTYPE" name="subtype" indexed="true" type="text" />
</entity>
</document>
</dataConfig>
在 UI Admin 上,DataImport 的结果
Last Update: 16:13:12
(Duration: 01s)
Requests: 1 1/s, Fetched: 6 6/s, Skipped: 0 , Processed: 0
Started: 42 minutes ago
再次,很高兴看到文本“Fetched: 6”
但是,当我使用查询 Params q=title:* 从 UI Admin 查询结果时,事情变得不愉快(请注意响应中的 JSON 字段 > numFound)
"responseHeader":{
"status":0,
"QTime":8,
"params":{
"q":"title:*",
"_":"1587565922553"}},
"response":{"numFound":4,"start":0,"docs":[
//removed the 4 records for brevity
]
【问题讨论】:
-
在您的情况下,唯一 id 是什么?...您在 schema.xml 中配置了什么?您的文档需要有唯一的字段。
-
我在您选择的 id 字段或定义行唯一性的字段中没有看到任何字段
-
你找到id字段并解决了这个吗?
-
@AbhijitBashetti。谢谢你的cmets。我必须弄清楚从 View 中确定记录的 ID 字段,应该尝试我脑海中的几个想法,然后按照这些想法更新帖子。
-
是的,请...问题似乎是唯一ID