首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQL的Solr DIH

使用SQL的Solr DIH
EN

Stack Overflow用户
提问于 2012-12-03 20:39:34
回答 1查看 145关注 0票数 0

我正在尝试将SOLR设置为从SQL文件导入文档。我找到了应该放在data-config中的内容:

代码语言:javascript
复制
<dataConfig>
  <dataSource driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/wikipedia" user="wikipedia" password="secret" />
  <document>
    <entity name="page" query="SELECT page_id, page_title from page">
      <field column="page_id" name="id" />
      <field column="page_title" name="name" />
      <entity name="revision" query="select rev_id from revision where rev_page=${page.page_id}">
        <entity name="pagecontent" query="select old_text from pagecontent where old_id=${revision.rev_id}">
          <field column="old_text" name="text" />
        </entity>
      </entity>
   </entity>
  </document>
</dataConfig>

在我的例子中,我的模式如下所示:

代码语言:javascript
复制
CREATE TABLE country (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(255) NOT NULL
)
;

CREATE TABLE location (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(255) NOT NULL,
    coordinate varchar(255) NOT NULL,
    country_id integer NOT NULL REFERENCES country (id)
)
;

CREATE TABLE item (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    title varchar(60) NOT NULL,
    description varchar(900) NOT NULL,
    date datetime NOT NULL,
    source varchar(255) NOT NULL,
    link varchar(255) NOT NULL,
    location_id integer NOT NULL REFERENCES location (id)
)
;

如果要将以下字段导入到Solr中:

代码语言:javascript
复制
id
title
description
date
source
link
location(name)
location(co-ordinates)

有没有人可以帮我更改示例数据配置以使用我的数据。我搞不懂的是什么时候用“实体”,什么时候用“字段列”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-05 16:52:36

你可以用两种方式来做,例如:

使用Item和Location之间的连接创建一个简单的SQL查询

代码语言:javascript
复制
<document name="items">
    <entity name="item" query="SELECT A.ID, A.TITLE, A.DESCRIPTION, A.DATE, A.SOURCE, B.COORDINATE , C.NAME FROM ITEM A, LOCATION B, COUNTRY C WHERE A.LOCATION_ID = B.ID AND B.COUNTRY_ID = C.ID">
        <field column="ID" name="id" />
        <field column="TITLE" name="title" />
        <field column="DESCRIPTION" name="description" />
        <field column="DATE" name="date" />
        <field column="SOURCE" name="source" />
        <field column="COORDINATE" name="coordinate" />     

    </entity>
</document>

使用subentities

代码语言:javascript
复制
<document name="items">
    <entity name="item" query="SELECT A.ID, A.TITLE, A.DESCRIPTION, A.DATE, A.SOURCE, B.COORDINATE , C.NAME FROM ITEM A, LOCATION B, COUNTRY C WHERE A.LOCATION_ID = B.ID AND B.COUNTRY_ID = C.ID">
        <field column="ID" name="id" />
        <field column="TITLE" name="title" />
        <field column="description" name="description" />
        <field column="DATE" name="date" />
        <field column="SOURCE" name="source" />

        <entity name="location" query="select coordinate from location where id='${item.ID}'">
            <field name="coordinate" column="coordinate" />
        </entity>

    </entity>
</document>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13683466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档