spring boot + solr + mysql

spring boot + solr + mysql


先从官网下载solr solr官网链接
solr目录图:
在这里插入图片描述
在/server/solr中创建一个文件夹new_core
进入/server/solr/configsets/_default目录将conf文件夹复制到 刚创建的文件夹 new_core
然后进入new_core下的conf下的solrconfig.xml
找到以下代码

<!-- SearchHandler

 http://wiki.apache.org/solr/SearchHandler

    For processing Search Queries, the primary Request Handler
    provided with Solr is "SearchHandler" It delegates to a sequent
    of SearchComponents (see below) and supports distributed
    queries across multiple shards
 -->

在此注释代码上加入以下代码:

<requestHandler name="/dataimport"
     class="org.apache.solr.handler.dataimport.DataImportHandler"> 
       <lst name="defaults"> 
          <str name="config">data-config.xml</str> //存放连接MySQL的配置
       </lst> 
	</requestHandler>

创建data-config.xml 添加以下内容

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource type="JdbcDataSource"
                driver="com.mysql.cj.jdbc.Driver"
                url="jdbc:mysql://127.0.0.1/table"
                //url中直接使用&会报错需要将&改为:&amp; 
                user="root"
                password="root" />
    <document>
        <entity pk="id" name="test" query="select * from test">
            <field column="id" name="id" />
            <field column="name" name="name" />
        </entity>
    </document>
</dataConfig>

配置完成后在同级文件夹找到 managed-schema 编辑
加入连接数据库的字段 大概在113行

<!-- id不用自己加 -->
<field name="name" type="string" indexed="true" stored="true"/>

加完之后可以启动solr 输入地址访问 访问solr
在这里插入图片描述
在左侧 Core Selector 中 选择刚刚添加的 new_core
在这里插入图片描述
点击Dataimpport导入即可完成如下图
在这里插入图片描述
最后查询的时候点击 Query 就可以进行查询了
这步成功之后在 pom.xml 中 添加依赖

		<dependency>
		    <groupId>org.springframework.data</groupId>
		    <artifactId>spring-data-solr</artifactId>
		</dependency>

然后在配置文件中添加配置
properties:

spring.data.solr.host=http://localhost:8983/solr/new_core
spring.application.name=solr

yml:

spring:

  data: 
    solr: 
      host: http://localhost:8983/solr/new_core
  application: 
    name: solr

最后是controller的代码块

	@Autowired
    private SolrClient client;
 
	@PostMapping("/queryAllSolr")
    public Map<String, Object> queryAllSolr(String value) throws IOException, SolrServerException {
		Map<String, Object> mp = new HashMap<String, Object>();
		try {
			ModifiableSolrParams params =new ModifiableSolrParams();
			if(value == null || value.equals(null)) {
				params.add("q","id:* or dictionaryName:*");
			}else {
				params.add("q","id:*"+value+"* or dictionaryName:*"+value+"*");
			}
            params.add("start","0");
            params.add("rows","100");
            QueryResponse query = client.query(params);
            mp.put("list", query.getResults());
        }catch (Exception e){
            e.printStackTrace();
        }
		return mp;
    }

猜你喜欢

转载自blog.csdn.net/weixin_42118284/article/details/89450121
今日推荐