0

我想使用 SQLServer DB 中的 Solr (4.7.2) 和 DIH 索引和查询作者及其参考书目(父/子关系),我想查询哪些作者在 2005 年之后出版了一本书,标题包含“狼”这个词“, 例如。

配置文件是:

数据导入.xml

<entity name="author" pk="Id" query="SELECT * FROM author"> 
    <field column="Id" name="Id" />
    <field column="name" name="name" />
    <entity name="book" pk=idBook query="SELECT * FROM Book where idAuthor={author.id}">
        <field column="year" name="year" />
        <field column="title" name="title" />
    <entity>
</entity>

架构.xml

<schema name="example" version="1.5">
     <fields>
        <field name="Id" type="int" indexed="true" stored="true" required="true"  />        
        <field name="name" type="text" indexed="true" stored="true" required="false"  />
        <field name="year" type="int" indexed="true" stored="true" required="false"  multiValued="true"/>       
        <field name="title" type="text_en_splitting" indexed="true" stored="true" required="false"  multiValued="true"/>
    </fields>
    [... fieldtypes etc...]
</schema>   

我认为使用这种配置,我失去了年份和标题之间的关系并显示交叉结果。

fq=year:[2005 TO *] AND title:wolf

此查询返回至少一本书在 2005 年之后的作者和一本标题为“狼”的书,但如果我想要在 2005 年之后出版一本书并包含“狼”的作者。

提前致谢

4

1 回答 1

0

最后,最好的解决方案是创建 2 个内核,一个与作者一起,另一个与书籍。然后您必须加入查询的结果,一个查询以获取具有所需表达式的书籍,然后搜索作者。

更多详细信息请参见:Solr 4.0 是否能够对多核使用“加入”?

于 2015-02-16T08:16:59.457 回答