solr框架的使用-API的使用DEMO

Solr使用细节——创建core solr版本:8.4.1 springboot版本:2.3.0.RELEASE 环境:centos 单机版 创建core时不要直接点点 Add Core 创建!!!这样会报错!! 正确的方式 第一种: 1、切换到solr到bin目录下 例如:/data/solr-8.4.1/bin;z执行命令: ./solr create -c demo 如果是root用户需要加上 -froce,不加会出现如下情况: WARNING: Creating cores as the root u... 阅读详情

solr控制台相信比较容易,简单摸索就可以学会使用了,对于后端开发人员来说还是直接用程序代码操作直观些,因此这次特别拿出了我的学习小例子分享给大家,demo使用springboot开发,图片服务器使用nodejs(也可以使用nginx或者其他方式)

1 程序依赖pom和配置文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.debug</groupId>
  <artifactId>FirstSolr</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>FirstSolr</name>
  <url>http://maven.apache.org</url>

  <properties>
    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
  </properties>
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
  </parent>

  <dependencies>
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.1</version>
		</dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        
       <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.46</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-solr</artifactId>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<!-- tomcat 的支持.-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
      <scope>provided</scope>
    </dependency>
		
    
  </dependencies>
</project>

springboot的配置文件如下:

server.port=8090
#server.context-path=/shiro/
#server.servlet.context-path=/axmobile/
#DataBase DataSources  
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/shiro?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
  
#mybatis.typeAliasesPackage=com.debug
#mybatis.config-location=classpath:mybatis-config.xml
#mybatis.mapperLocations=classpath:/com/debug/mapper/**/*.xml

spring.data.solr.host=http://127.0.0.1:8089/solr

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
  
  
logging.level.com.debug=debug

暂时只需要指定下solr的主机地址即可,如有安全性方面的要求运行有solr环境的服务器需要做诸如防火墙、端口等的访问限制

2 solr数据的初始化

这里初始化几条汽车相关的信息到solr,让solr进行存储和索引

package com.debug.entity;

import org.apache.solr.client.solrj.beans.Field;

public class Goods {
	
	@Field("id")
	private String id;
	
	@Field("goods_name")
	private String name;
	
	@Field("goods_price")
	private double price;
	
	@Field("goods_skuProps")
	private String[] skuProps;
	
	@Field("goods_imageUrl")
	private String imageUrl;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	public String[] getSkuProps() {
		return skuProps;
	}

	public void setSkuProps(String[] skuProps) {
		this.skuProps = skuProps;
	}

	public String getImageUrl() {
		return imageUrl;
	}

	public void setImageUrl(String imageUrl) {
		this.imageUrl = imageUrl;
	}
}

上面的实体类和平时使用的差异不大,我们使用solr的注解@Filed让实体的属性和solr的索引名称建立映射关系,这里为了研究和学习方便直接使用了自带的几条索引,如果不够也可以自行到schema.xml里面新增索引

public void initGoodsSolor() {
		List<Goods> ls0 = new ArrayList<Goods>();

		Goods g1 = new Goods();
		String skuProp[] = { "黑色", "白色" };
		g1.setId("goods_" + UUID.randomUUID().toString());
		g1.setName("新捷达");
		g1.setPrice(80000);
		g1.setSkuProps(skuProp);
		g1.setImageUrl("/images/xjd.jpg");
		ls0.add(g1);

		Goods g2 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g2.setId("goods_" + UUID.randomUUID().toString());
		g2.setName("奥迪A6");
		g2.setPrice(250000);
		g2.setSkuProps(skuProp);
		g2.setImageUrl("/images/ad.jpg");
		ls0.add(g2);

		Goods g3 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g3.setId("goods_" + UUID.randomUUID().toString());
		g3.setName("宝骏");
		g3.setPrice(250000);
		g3.setSkuProps(skuProp);
		g3.setImageUrl("/images/bj.jpg");
		ls0.add(g3);

		Goods g4 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g4.setId("goods_" + UUID.randomUUID().toString());
		g4.setName("宝来");
		g4.setPrice(110000);
		g4.setSkuProps(skuProp);
		g4.setImageUrl("/images/bl.jpg");
		ls0.add(g4);

		Goods g5 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g5.setId("goods_" + UUID.randomUUID().toString());
		g5.setName("宝马");
		g5.setPrice(500000);
		g5.setSkuProps(skuProp);
		g5.setImageUrl("/images/bm.jpg");
		ls0.add(g5);

		Goods g6 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g6.setId("goods_" + UUID.randomUUID().toString());
		g6.setName("东风风神");
		g6.setPrice(75000);
		g6.setSkuProps(skuProp);
		g6.setImageUrl("/images/dffs.jpg");
		ls0.add(g6);

		try {
			solrClient.addBeans(ls0);
			solrClient.commit();
			// solrClient.addBeans(ls);
			// solrClient.commit();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

solrClient从外部注入即可,后面会把这个service贴出来,大家稍安勿躁

3 实现搜索功能并把搜索关键字标红

public List<Goods> queryGoods(String name, String end) {

		List<Goods> result = new ArrayList<Goods>();

		SolrQuery query = new SolrQuery();
		// 下面设置solr查询参数
		// query.set("q", "*:*");// 参数q 查询所有
		query.set("q", "goods_name:" + name);// 相关查询,比如某条数据某个字段含有周、星、驰三个字 将会查询出来 ,这个作用适用于联想查询

		// 过滤条件
		// query.set("fq", "price:[600 TO 1000]");

		// 参数sort,设置返回结果的排序规则
		query.setSort("goods_price", SolrQuery.ORDER.asc);

		// 设置分页参数
		query.setStart(0);
		query.setRows(Integer.parseInt(end));// 每一页多少值

		// 参数hl,设置高亮
		query.setHighlight(true);
		// 设置高亮的字段
		query.addHighlightField("goods_name");
		// 设置高亮的样式
		query.setHighlightSimplePre("<font color='red'>");
		query.setHighlightSimplePost("</font>");
		// query.setParam("hl.fl", "name");
		// 获取查询结果
		QueryResponse response = null;
		try {
			response = solrClient.query(query);
		} catch (SolrServerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 两种结果获取:得到文档集合或者实体对象

		// 查询得到文档的集合
		SolrDocumentList solrDocumentList = response.getResults();

		// System.out.println("通过文档集合获取查询的结果");
		// System.out.println("查询结果的总数量:" + solrDocumentList.getNumFound());

		List<Goods> goodsList = response.getBeans(Goods.class);
		Map<String, Map<String, List<String>>> maplist = response.getHighlighting();
		// 返回高亮之后的结果..
		for (Goods g : goodsList) {
			String id = g.getId();
			double price = g.getPrice();
			String imageUrl = g.getImageUrl();
			Map<String, List<String>> fieldMap = maplist.get(id);
			List<String> stringlist = fieldMap.get("goods_name");

			Goods g1 = new Goods();
			g1.setName(stringlist.get(0));
			g1.setPrice(new Double(price).doubleValue());
			g1.setImageUrl(imageUrl);
			result.add(g1);

		}

		return result;
	}

只要获取到solr返回给我们的结果,下面的工作就很简单了,无外乎就是数据展示相关了

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询结果</title>
 <style type="text/css">
      ul{
        
           list-style:none;
      }
      ul li{
        text-decoration: none;float:left;margin-left:20px;
      }
      .top{
          margin-top:20px;
      }
      .goodsImg{
          width:200px;
          height:250px;
      }
    </style>
   <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
   
    
    <div class="container">
      <div class="row">
           <div class="col-md-12">
               <c:forEach var="item" items="${result}">  
	                <div class="col-md-3  top">
	                        <div><img class="goodsImg" src="http://localhost:9091${item.imageUrl}"/></div>
	                        <div>${item.name}</div>
	                </div>
                </c:forEach>  
           </div>
          
      </div>
    </div>
</body>
</html>

运行效果如下

图片选的不是很好,界面难看了点,大家凑合看看就行

下面把controller和service的完整代码贴出来给大家参考

package com.debug.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.apache.solr.client.solrj.SolrClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.debug.service.SolrService;

@Controller
@RequestMapping("/solrHandler")
public class SolrController {
	
	@Resource
	private SolrService solrService;
	
	@Autowired
	private SolrClient solrClient;
	
	@RequestMapping("/initGoodsSolor")
	 @ResponseBody
	public String initGoodsSolor() {
		solrService.initGoodsSolor();
		return "操作成功";
	}
	
	@RequestMapping("/initSolr")
	 @ResponseBody
	public String initSolr() {
		solrService.initSolor();
		return "操作成功";
	}
	
	@RequestMapping("/query")
	public String query(HttpServletRequest request,String name) {
		
	      request.setAttribute("result", solrService.query(name));
		  return "query";
	}
	
	@RequestMapping("/queryGoods")
	public String queryGoods(HttpServletRequest request,String name,String end) {
		
	      request.setAttribute("result", solrService.queryGoods(name,end));
		  return "queryGoods";
	}
	
	 /**
     * 删除所有的索引
     * @return
     */
    @RequestMapping("deleteAll")
    @ResponseBody
    public String deleteAll(){
        try {

        	solrClient.deleteByQuery("collection1","*:*");
        	solrClient.commit("collection1");

            return "success";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "error";
    }


}

 

package com.debug.service.impl;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.debug.entity.Goods;
import com.debug.service.SolrService;

@Service
public class SolrServiceImpl implements SolrService {

	@Autowired
	private SolrClient solrClient;

	public void initSolor() {
		List<SolrInputDocument> ls0 = new ArrayList<SolrInputDocument>();
		for (int i = 1; i <= 10; i++) {

			SolrInputDocument doc = new SolrInputDocument();
			doc.setField("id", "goods_" + i);
			doc.setField("name", "手机" + i);
			doc.setField("price", new Random().nextInt(1000));
			doc.setField("description", "产品介绍" + i);
			ls0.add(doc);

		}
		List<SolrInputDocument> ls = new ArrayList<SolrInputDocument>();
		for (int i = 1; i <= 10; i++) {

			SolrInputDocument doc = new SolrInputDocument();
			doc.setField("id", "goods_" + 10 + i);
			doc.setField("name", "笔记本电脑" + i);
			doc.setField("price", new Random().nextInt(1000));
			doc.setField("description", "产品介绍" + i);

			ls.add(doc);

		}
		try {
			solrClient.add(ls0);
			solrClient.add(ls);
			solrClient.commit();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		// solrClient.close();

	}

	public List<String> query(String name) {

		List<String> result = new ArrayList<String>();

		SolrQuery query = new SolrQuery();
		// 下面设置solr查询参数
		// query.set("q", "*:*");// 参数q 查询所有
		query.set("q", "name:" + name);// 相关查询,比如某条数据某个字段含有周、星、驰三个字 将会查询出来 ,这个作用适用于联想查询

		// 过滤条件
		query.set("fq", "price:[600 TO 1000]");

		// 参数sort,设置返回结果的排序规则
		query.setSort("id", SolrQuery.ORDER.asc);

		// 设置分页参数
		query.setStart(0);
		query.setRows(10);// 每一页多少值

		// 参数hl,设置高亮
		query.setHighlight(true);
		// 设置高亮的字段
		query.addHighlightField("name");
		// 设置高亮的样式
		query.setHighlightSimplePre("<font color='red'>");
		query.setHighlightSimplePost("</font>");
		// query.setParam("hl.fl", "name");
		// 获取查询结果
		QueryResponse response = null;
		try {
			response = solrClient.query(query);
		} catch (SolrServerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 两种结果获取:得到文档集合或者实体对象

		// 查询得到文档的集合
		// SolrDocumentList solrDocumentList = response.getResults();

		// System.out.println("通过文档集合获取查询的结果");
		// System.out.println("查询结果的总数量:" + solrDocumentList.getNumFound());

		SolrDocumentList documentList = response.getResults();
		Map<String, Map<String, List<String>>> maplist = response.getHighlighting();
		// 返回高亮之后的结果..
		for (SolrDocument solrDocument : documentList) {
			Object id = solrDocument.get("id");
			Map<String, List<String>> fieldMap = maplist.get(id);
			List<String> stringlist = fieldMap.get("name");

			result.add(stringlist.get(0));
			// System.out.println(stringlist);
		}

		return result;
	}

	public void initGoodsSolor() {
		List<Goods> ls0 = new ArrayList<Goods>();

		Goods g1 = new Goods();
		String skuProp[] = { "黑色", "白色" };
		g1.setId("goods_" + UUID.randomUUID().toString());
		g1.setName("新捷达");
		g1.setPrice(80000);
		g1.setSkuProps(skuProp);
		g1.setImageUrl("/images/xjd.jpg");
		ls0.add(g1);

		Goods g2 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g2.setId("goods_" + UUID.randomUUID().toString());
		g2.setName("奥迪A6");
		g2.setPrice(250000);
		g2.setSkuProps(skuProp);
		g2.setImageUrl("/images/ad.jpg");
		ls0.add(g2);

		Goods g3 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g3.setId("goods_" + UUID.randomUUID().toString());
		g3.setName("宝骏");
		g3.setPrice(250000);
		g3.setSkuProps(skuProp);
		g3.setImageUrl("/images/bj.jpg");
		ls0.add(g3);

		Goods g4 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g4.setId("goods_" + UUID.randomUUID().toString());
		g4.setName("宝来");
		g4.setPrice(110000);
		g4.setSkuProps(skuProp);
		g4.setImageUrl("/images/bl.jpg");
		ls0.add(g4);

		Goods g5 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g5.setId("goods_" + UUID.randomUUID().toString());
		g5.setName("宝马");
		g5.setPrice(500000);
		g5.setSkuProps(skuProp);
		g5.setImageUrl("/images/bm.jpg");
		ls0.add(g5);

		Goods g6 = new Goods();
		// String skuProp[]= {"黑色","白色"};
		g6.setId("goods_" + UUID.randomUUID().toString());
		g6.setName("东风风神");
		g6.setPrice(75000);
		g6.setSkuProps(skuProp);
		g6.setImageUrl("/images/dffs.jpg");
		ls0.add(g6);

		try {
			solrClient.addBeans(ls0);
			solrClient.commit();
			// solrClient.addBeans(ls);
			// solrClient.commit();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public List<Goods> queryGoods(String name, String end) {

		List<Goods> result = new ArrayList<Goods>();

		SolrQuery query = new SolrQuery();
		// 下面设置solr查询参数
		// query.set("q", "*:*");// 参数q 查询所有
		query.set("q", "goods_name:" + name);// 相关查询,比如某条数据某个字段含有周、星、驰三个字 将会查询出来 ,这个作用适用于联想查询

		// 过滤条件
		// query.set("fq", "price:[600 TO 1000]");

		// 参数sort,设置返回结果的排序规则
		query.setSort("goods_price", SolrQuery.ORDER.asc);

		// 设置分页参数
		query.setStart(0);
		query.setRows(Integer.parseInt(end));// 每一页多少值

		// 参数hl,设置高亮
		query.setHighlight(true);
		// 设置高亮的字段
		query.addHighlightField("goods_name");
		// 设置高亮的样式
		query.setHighlightSimplePre("<font color='red'>");
		query.setHighlightSimplePost("</font>");
		// query.setParam("hl.fl", "name");
		// 获取查询结果
		QueryResponse response = null;
		try {
			response = solrClient.query(query);
		} catch (SolrServerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 两种结果获取:得到文档集合或者实体对象

		// 查询得到文档的集合
		SolrDocumentList solrDocumentList = response.getResults();

		// System.out.println("通过文档集合获取查询的结果");
		// System.out.println("查询结果的总数量:" + solrDocumentList.getNumFound());

		List<Goods> goodsList = response.getBeans(Goods.class);
		Map<String, Map<String, List<String>>> maplist = response.getHighlighting();
		// 返回高亮之后的结果..
		for (Goods g : goodsList) {
			String id = g.getId();
			double price = g.getPrice();
			String imageUrl = g.getImageUrl();
			Map<String, List<String>> fieldMap = maplist.get(id);
			List<String> stringlist = fieldMap.get("goods_name");

			Goods g1 = new Goods();
			g1.setName(stringlist.get(0));
			g1.setPrice(new Double(price).doubleValue());
			g1.setImageUrl(imageUrl);
			result.add(g1);

		}

		return result;
	}

}

使用到的索引如下:

<field name="goods_name" type="text_general" indexed="true" stored="true"/>
<field name="goods_price" type="float" indexed="true" stored="true"/>
<field name="goods_skuProps" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="goods_imageUrl" type="text_general" indexed="true" stored="true" multiValued="false"/>

是不是很简单呢,现在除了solr外我们还可以选择Elasticsearch作为搜索引擎,可参考下面这个学习

https://www.imooc.com/learn/889/

node-solr:Node.js 的 Solr 模块 Node.js 的 Solr 模块 参考 Node.js: : Solr: : 使用npm test运行测试。 如果您没有在 127.0.0.1:8983 上运行 Solr,请编辑“test/common.js”。 使用示例 请参阅使用测试。 这是一个快速示例: var solr = require ( 'solr' ) ; var client = solr . createClient ( ) ; var doc1 = { id : '1' , title_t : 'Foo bar' , text_t : 'Fizz buzz frizzle' } ; var doc2 = { id : '2' , title_t : 'Far boo' , text_t : ' 立即下载

相关推荐

计数译码驱动显示电路实验报告_京东方G0A电路、阵列基板、显示 装置及驱动方法广州威彩...

图1、实施例二所述的选择子单元的结构示意图图2、实施例四所述的GOA电路结构示意图图3、实施例七所述的阵列基板的局部结构示意图图4、实施例所述的极性反转驱动方法的第一场的各信号时序图图5、实施例所述的极性反转驱动方法的第二场的各信号时序图图6、实施例所述的极性反转驱动方法的第三场的各信号时序图图7、实施例所述的极性反转驱动方法的第四场的各信号时序图图8、为图4所示时序下,实施例八所述显示...

weixin_35696112的博客 925

SolrJ初识

什么是solrJ SolrJ是操作Solr的JAVA客户端,它提供了增加、修改、删除、查询Solr索引的JAVA接口。SolrJ针对Solr提供了Rest的HTTP接口进行了封装,SolrJ底层是通过使用HttpClient中的方法来完成Solr的操作。 通过SolrJ请求Solr服务,最终Solr完成索引和搜索 搭建工程 https://gitee.com/csps/csp-demo-pro.git 以下所有代码【ssm-solr】工程中找到完整版 使用solrj完成索引维护 Java对象绑定 Solr提

csp732171109的博客 358

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7)

weixin_44312889的博客 6309

Node.js从入门到实战(八)Solr的层级

参考:Node.js从入门到实战(七)Solr查询规则总结 参考:Solr搜索服务架构图 一、Solr的层级 Solr作为关键的搜索组件,在整个系统中的架构如下图所示: Solr的索引服务是为了提高搜索的效率,一般而言Solr需要配合Nosql DB使用,作为与NoSQL DB相互独立的补充,在能够享受到NoSQL DB的优势(如存储遍历、速度快等)时,也能够保持系统较高的索引效率

Invoker's Tower 1501

SRCNN超分辨率Pytorch实现,代码逐行讲解,附源码

超分辨率,就是把低分辨率(LR, Low Resolution)图片放大为高分辨率(HR, High Resolution)的过程。通过CNN将图像Y 的特征提取出来存到向量中。用一层的CNN以及ReLU去将图像Y 变成一堆堆向量,即feature map。把提取到的特征进一步做非线性映射,加大网络深度,提高网络复杂性。结合了前面得到的补丁来产生最终的高分辨率图像。实验步骤。

weixin_52261094的博客 3万+

解决开着代理情况下pip或魔搭下载失败

最近由于经常配环境导致,老是要来回切clash关掉代理,非常的不方便如下面的,魔搭模型下载失败如下面的,pip换源后下载失败。

风吹落叶的博客 2950

NodeJS+Solr初步使用

使用背景     在了解花瓣网的全文检索使用的就是solr这个开源软件后,通过网上查找一些资料,决定试着搭建nodejs与solr环境。 安装步骤    1、首先去apache官网下载solr地址是solr然后解压到某个路径下,solr解压运行是要java环境,且版本不能低于1.6最新的版本是4.3.0。我的搭建环境是在linux下可以使用命令java -versio

jiangyongc5606的专栏 3449

⭐️【2024年新版教程】vmware tools安装步骤(Windows、Linux、MacOS版本)

VMware Tools是VMware提供的一套实用工具,它可以增强虚拟机与宿主机之间的交互性能,如改进显示性能、优化鼠标和键盘性能、提供时间同步功能等。无论是在Windows、Linux还是MacOS虚拟机上,安装VMware Tools都可以提高虚拟机的使用体验。以上就是在不同操作系统上安装VMware Tools的步骤,希望对您有所帮助。

Python老吕的博客 6万+

solr api: 集群管理,数据读写

文章目录1,使用Rest Api, 管理solra, 管理configSetb, 管理collectionc, 修改schema.xml: 添加/修改field字段d, 修改solrconfig.xmle, shard分裂/合并2,使用api ,读写数据a, 读写流程b, 验证数据的分片 1,使用Rest Api, 管理solr a, 管理configSet 参考:https://lucene.apache.org/solr/guide/7_7/configsets-api.html #1, 查看cdh s

eyeofeagle的博客 1500

微搭低代码实现用户登录及注册功能

在小程序开发中,我们可以拿到微信用户的openid,openid可以作为用户的唯一标识,在查询数据的时候可以进行数据过滤实现查询自己提交的数据。那微搭中是否也有openid这个概念,可以获取用户自己提交的数据呢? 答案是肯定的,那要怎么去做呢?思路是先创建一个数据源方法,在数据源中返回openid,然后低代码中可以调用数据源的方法并且赋值给全局变量,这样在后续的业务中从全局变量就可以获取openid了,方便做数据权限的控制。 为了实现这个目的,我们从创建数据源开始。 创建数据源 我们先创建一个用户管理的数据

低代码布道师的博客 2998

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。提供了 示例以便参考,罗列了 各函数可设属性。希望对绘图的你有所帮助。

weixin_43339605的博客 1947

Spring Data Solr 使用

搜索引擎:Elasticsearch、Solr、Lucene ELK中的ES:Elasticsearch SolrCloud 的搭建、使用 Solr 高亮显示 Spring Data Solr 使用 Solr的安装与配置 Solr 原理、API 使用 Lucene 原理、API使用 Lucene 得分算法 Spring Data Solr就是为了方便Solr的开发所研制的一个框架,...

あずにゃん梓喵的博客 1163

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring Data Solr的api demo测试操作

文章目录简介搭建工程准备配置文件修改schama自定义域常用操作测试增加/修改 简介 搭建工程 准备配置文件 修改schama自定义域 常用操作测试 增加/修改 ...

baidu_21349635的专栏 584

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Solr7.3.3的API(demo )操作

不同solr版本solrj 的创建方式有所不同 参考地址 pom.xml 配置为 <dependencies> <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>7.7.3&lt...

忆往昔的博客 296

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

solr java 创建索引_solrj demo 索引创建与查询

solrj作为solr的java客户端使得solr的开发简单了许多,solrJ实际上也是是封装了httpClient方法,来操作solr的API的。下面来通过一个简单的demo实现solrj的索引创建以及查询demo需求:需要对一个product 的实体创建以及查询索引(字段包括id,name,keywords,description,sn)一,首先根据需要在solr配置文件schema.xml中...

weixin_32060735的博客 439

Solr入门

Solr安装与配置 1.1 什么是Solr   大多数搜索引擎应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源消耗并且它们由于沉重的数据库加载而拖垮你的应用的性能。   这就是为什么转移负载到一个外部的搜索服务器是一个不错的主意,Apache Solr是一个流行的开源搜索服务器,它通过使用类似REST的HTTP API,这就确保你能从几乎任何编程语言来使用solr。   Solr是一个...

程序元 587

solr-phoenix

1 , phoenix配置文档+demo-crud程序 2 , solr索引原理(一次性建立还是每次都建立,对值) 将HBase表中涉及条件过滤的字段和rowkey在Solr中建立索引,通过Solr的多条件查询快速获得符合过滤条件的rowkey值,拿到这些rowkey之后在HBASE中通过指定rowkey进行查询 phoenix VS solr 第一种方案是通过HBase的普通

u013494310的专栏 1673

10、solr介绍、solr安装说明、中文ik分词器配置、solr域的说明、solr的demo演示、solr的批量导入、测试从demo中批量查询、实现关键字前端传到后端、前端输入关键字后端返回并显示

solr介绍 solr安装说明 1.拷贝dist目录中的solr-4.10.3.war包到tomcat的webapps目录 2.拷贝example/lib/ext的所有jar包到tomcat中的solr的\WEB-INF\lib目录下 3.拷贝example/solr目录下的所有文件到本地硬盘改名为solrhome 4.修改web.xml文件,将evn-entry注释放开,改路径为e:\solrh...

weixin_43421537的博客 587

spring data solr的使用,spring集成solr

1.介绍 Spring Data Solr就是为了方便Solr的开发所研制的一个框架,其底层是对SolrJ(官方API)的封装。 2.使用 solrTemplate 创建maven工程 springdatasolr-demo (1)创建maven工程,pom.xml中引入依赖 &lt;dependencies&gt; &lt;!--Spring-Data-Solr--&gt; ...

zzzgd_666的博客 4495

Spring Boot整合solr,手把手教你使用solr

一、solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。solr现在支持多种返回结果,xml,phthon。 二、springboot整合solr 2.1  添加依赖 &lt;...

weixin_42129558的博客 3万+

Solr配置与简单Demo

简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/  。solr需要运行在一个servlet 容器里,例如tomcat。solr在lucene的上层提供了一个基于HTTP/XML的Web Services,我们的应用需要通过这个服务与solr进行交互。  

小飞侠的博客 388

Spring Boot整合solr

一.Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。solr现在支持多种返回结果,xml,phthon。 二、springboot整合solr 1.pom.xml <?xml vers...

weixin_44914784的博客 825

索引solr使用

1.概要 百科百科:https://baike.baidu.com/item/Solr/4101582?fr=aladdin 视频学习:https://www.bilibili.com/video/BV1ob411T7NQ?p=9 1)、solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。 2)、用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件(可以是多种格式入json),生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回

w172717的博客 337

solr基础操作

全文检索服务器 1Solr介绍 1.1什么是solr Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器。 Solr比lucene提供了更多的查询语句,而且它可扩展、可配置,同时它对lucene的性能进行了优化。 Solr

weixin_56603901的博客 531

Spring Boot Demo 项目教程

Spring Boot Demo 项目教程 1. 项目介绍 Spring Boot Demo 是一个基于 Spring Boot 的开源项目,它包含了多种组件的集成示例,如 Redis、Solr、RocketMQ 等。该项目旨在帮助开发者快速理解和掌握 Spring Boot 的使用,以及如何在项目中集成各种常用的技术栈。 2. 项目快速启动 要快速启动 Spring Boot Demo,请按照以...

gitblog_00491的博客 702
上一篇: solr框架的使用-环境搭建和配置
下一篇: vue父子组件通信实现简单的评论功能
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值