Sim*_*mon 7 java postgresql solr hibernate
我想将搜索引擎Solr添加到我的Java应用程序中.我想索引Solr中的一些信息,但不是所有内容,因为我的数据库非常具体.
我不想解释所有内容,因为它很复杂,所以我将使用一个简单的例子.
假设我有一个名为T的表,有两列col1和col2:
col1 | col2
------------------|----------
some text... | 123
another text... | 41
bla bla... | 124
Run Code Online (Sandbox Code Playgroud)
我想仅索引Solr引擎中的col1列.我不想索引Solr中的col2列 - 我知道这是可能的,但我不想这样做.
在搜索我的应用程序时,我想要从两列中过滤信息.例如,我需要获得带有"Lorem ipsum dolorem"的行 col1中,并且在col2中使用范围[ ]中的值.
我怎样才能做到这一点?
我使用PostgreSQL和Hibernate,但也许我会将它改为MongoDB.
首先,在您的示例中,如果您不想索引col2,但是您确实希望使用特定于col2的过滤器进行搜索,那么您是否计划在结果之上手动编写一些过滤器代码?因为要过滤某些东西,它必须是索引的一部分......对吗?
我发现了一篇关于通过JDBC处理程序jar将Solr连接到mysql的博客文章,我找到了PostgreSQL JDBC jar的特定语法示例.
将两者放在一起我会推测步骤将是(根据需要调整,因为可能你有一些部分有用的东西):
solrconfig.xml投入:
Run Code Online (Sandbox Code Playgroud)<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>
schema.xml:
Run Code Online (Sandbox Code Playgroud)<dynamicField name="*_name" type="text_general" multiValued="false" indexed="true" stored="true" />
db-data-config.xml类似于链接的博客文章,但有类似的东西(我已删除限制,不确定postgreSQL是否有不同的限制语法):
Run Code Online (Sandbox Code Playgroud)<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>
另外请查看其他关于方面的详细信息,这可能有助于您完成一些您希望进行的过滤.
| 归档时间: |
|
| 查看次数: |
4494 次 |
| 最近记录: |