Java Solr与postgresql的集成

Java Solr与postgresql的集成,java,hibernate,postgresql,solr,Java,Hibernate,Postgresql,Solr,我想将搜索引擎Solr添加到我的Java应用程序中。我想在Solr中索引一些信息,但不是所有信息,因为我的数据库非常具体 我不想解释一切,因为这很复杂,所以我将使用一个简单的例子 假设我有一个名为T的表,有两列col1和col2: 我只想索引Solr引擎中的col1列。我不想在Solr中索引col2列-我知道这是可能的,但我不想这样做 在搜索我的应用程序时,我想从两列中筛选信息。例如,我需要在col1中获取“Lorem ipsum dolorem”行,在col2中获取范围为[5163]的值 我该

我想将搜索引擎Solr添加到我的Java应用程序中。我想在Solr中索引一些信息,但不是所有信息,因为我的数据库非常具体

我不想解释一切,因为这很复杂,所以我将使用一个简单的例子

假设我有一个名为T的表,有两列col1和col2:

我只想索引Solr引擎中的col1列。我不想在Solr中索引col2列-我知道这是可能的,但我不想这样做

在搜索我的应用程序时,我想从两列中筛选信息。例如,我需要在col1中获取“Lorem ipsum dolorem”行,在col2中获取范围为[5163]的值

我该怎么做


我使用PostgreSQL和Hibernate,但也许我会将其更改为MongoDB。

首先,在您的示例中,如果您不想索引col2,但确实想使用特定于col2的过滤器进行搜索,您是否计划在结果的顶部手工编写一些过滤器?因为要过滤某些内容,它必须是索引的一部分。。。对吧?

我找到了一篇关于连接的博客文章,我找到了一个关于连接的特定语法的示例

将两者结合在一起,我推测步骤将是(根据需要进行调整,因为您可能已经得到了部分有效的东西):

  • solrconfig.xml
    put中:
  • 添加一个类似于链接博客文章的
    db data config.xml
    ,但类似于(我已经删除了限制,不确定postgreSQL是否有不同的限制语法):
    
    
  • 还可以查看有关方面的详细信息,这可能会帮助您完成一些希望进行的过滤

     col1             | col2
    ------------------|----------
     some text...     |  123
     another text...  |  41
     bla bla...       |  124
    
    <lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
    
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
    <str name="config">db-data-config.xml</str>
    </lst>
    </requestHandler>
    
    <dynamicField name="*_name" type="text_general" multiValued="false" indexed="true" stored="true" />
    
    <dataConfig>
      <dataSource type="JdbcDataSource"
                driver="org.postgresql.Driver"
                url="jdbc:postgresql://host/db"
                user="user"
                password="password" /> 
      <document>
        <entity name="T" query="select col1 as 'col1' from T;" />
      </document>
    </dataConfig>