- 浏览: 2539368 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
SOLR Performance and SolrJ(1)Client Compare Java VS PHP
Recently, I am using PHP and SolrJ to connect to SOLR indexer and search.
At first I am using PHP driver Solarium. The code is similar to theses
$this->clientActive = new Client(array(
'endpoint' => array(
'localhost' => array(
'host' => $solrHostActive,
'port' => $solrPortActive,
'path' => $solrPathActive,
'timeout' => 30,
)
)
));
public function addJobDocuments($jobs, $commit, $server){
//set up features needed for this method
$logger = $this->ioc->getService("logger");
$solrClient = $this->getSolrServer($server);
//get an update query instance
$update = $solrClient->createUpdate();
$docs = array();
$logger->debug(var_export($jobs, true));
foreach ($jobs as $job){
$doc = $this->prepareDocument($job, $update);
if($doc != null){
$docs[] = $doc;
}
}
if(!empty($docs)){
$update->addDocuments($docs);
if ($commit) {
$update->addCommit();
$logger->debug("committing during add documents.");
} else {
$logger->debug("NOT committing during add documents.");
}
return $this->ioc->retry(function () use ($solrClient, $update, $logger) {
$result = $solrClient->update($update);
$logger->debug("Update query executed---------");
$logger->debug("Query status: " . $result->getStatus());
$logger->debug("Query time: " . $result->getQueryTime());
}, 10, 3, "SolrSearchClient.addJobDocuments");
}
}
I found the performance for one single PHP is about 200jobs/s, each job is about 10k size. But that is one PHP process. If I am using ECS cluster, I can set up multiple ECS containers and then I can get 200 * N performance. That is ideal.
Then I tried with Java and SolrJ. The code is similar to these.
package com.sillycat.analyzerjava;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient;
import org.apache.solr.common.SolrInputDocument;
public class SolrMainApp {
public static void main(String[] args) throws SolrServerException, IOException {
System.out.println("-----------------start job-------------");
long start = System.currentTimeMillis();
String solrURL = "http://172.23.2.245:8983/job";
ExecutorService executorService =
new ThreadPoolExecutor(50, 200, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
SolrClient solrClient = new ConcurrentUpdateSolrClient.Builder(solrURL)
.withThreadCount(100)
.withQueueSize(1000)
.withExecutorService(executorService).build();
for(int i = 1;i<50000; i++){
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i);
doc.addField("customer_id", "1");
doc.addField("pool_id", 9528);
doc.addField("source_id", 1);
doc.addField("campaign_id", 1);
doc.addField("segment_id", 1);
doc.addField("job_reference", "referenceId1");
doc.addField("title", "title1");
doc.addField("description", "COMMERCIAL ROOFING SALESMEN, ESTIMATORS & INSTALLERS <br /> <br /> <br />Tired of living on a small draw and commission when you know the business inside out? <br /> <br />Been waiting for the opportunity to run your own show? <br /> <br />Well now you can. And withthe backing of an 82-year old leader in the business. <br /> <br />Company Description: <br /> <br />Southwestern Petroleum Corporation is a Texas-based oil company founded in 1933. Our ISO 9001 certified Coating Technology Division manufactures a full line of industrial and commercial protective coatings and waterproofing systems at manufacturing facilities in the US, Canada and Belgium. We pride ourselves on our track record of helping motivated people establish successful building maintenance companies in 75 countries around the world. <br /> <br /> Total independence be your own boss sell when where and how you want <br /> Keep all the profit from the jobs you sell <br /> Our top people earn six figures consistently <br /> Uncapped, industry leading product commission rate plus high margin profit on installation <br /> Competitive, world-class, industry leading products & systems <br /> Professional factory & ongoing training <br /> Responsive, experienced sales, marketing & technical support <br /> Financially stable, 82-year old private family-owned business <br /> <br />Why Our Company Is Unique: <br /> <br /> Our company was started by sales professionals <br /> Our sales professionals earn the highest commissions in our industry <br /> Our sales program offers true independence and freedom from sales quotas, reports and collections <br /> We treat our sales professionals with respect and integrity and dont downsize their territories or reduce their commissions when they start earning too much <br /> We provide sales tools to make your sales job easier <br /> We provide software tools to cut the paperwork and get more impressive estimates/proposals out fast <br /> Many of our sales professionals have been with us for 20, 30, 40 years and more <br /> Our sales professionals represent the best protective coatings and waterproofing systems in the world, used by Customers like Goodyear, Kraft, Hilton, O'Reilly Auto Parts, Siemens, Honeywell, General Electric, Nestle, Intercontinental Hotels, British Petroleum, Bosch, DuPont, Toyota, Hewlett Packard, Sheraton, Bridgestone, Ingersoll-Rand, Sara Lee and thousands of smaller businesses who demand the best <br /> Our sales professionals enjoy the security and sales potential of a vast, diversified market virtually every commercial, industrial or institutional building has a need for our products hotels, office buildings, manufacturing plants, apartment buildings, government buildings, airports, universities, food stores, shopping centers, hospitals, warehouses, garages, barns, stadiums, storage facilities, distribution centers and terminals and every other type of building you can think of <br /> <br />You Will Be a Perfect Fit for Our Company If: <br /> <br /> You are experienced in sales and enjoy helping business people solve problems and save money <br /> You would like the independence of owning your own business <br /> You prefer to sell a quality product you can be proud of instead of the cheapest one available <br /> You don't like paperwork and don't really need a boss to tell you what to do <br /> You are super competitive, hate losing at anything and prefer setting your own goals instead of dealing with company quotas or call reports <br /> You are a problem solver, good at overcoming obstacles <br /> You are confident in your abilities, make friends easily and have a great sense of humor <br /> You are organized and manage time well enough to work from a home office <br /> You can be demanding at times because you insist on excellent service from the company you represent <br /> You know how important high activity levels are to sales success <br /> You don't mind working hard and getting your hands dirty, if it translates into income <br /> You prefer to spend your days working with prospects and Customers instead of sitting in an office <br /> You would like more control over your own future <br /> You know you are capable of earning much more if given the right training, support and freedom to do it your way <br /> <br />Qualifications: <br /> <br /> Minimum 1 year of successful business to business sales experience <br /> Background in roofing, flooring, paving, construction materials, construction trades, engineering or contracting a plus <br /> <br />If you would like to know more about taking that first step towards financial independence and a secure future, please respond with your name, city, state and email address.");
doc.addField("url", "http://url1");
doc.addField("company_id", 1);
doc.addField("company", "company1");
doc.addField("cities", "austin");
doc.addField("cities", "dallas");
doc.addField("cpc", 12);
doc.addField("reg_cpc",10);
doc.addField("posted","2016-06-23T22:00:00Z");
doc.addField("created","2016-05-23T22:00:00Z");
doc.addField("experience", 1);
doc.addField("salary", 1);
doc.addField("education", 1);
doc.addField("jobtype", 1);
doc.addField("industry", 1);
doc.addField("quality_score", 1.0);
doc.addField("boost_factor",1.0);
doc.addField("paused", false);
doc.addField("budget", 100);
doc.addField("email", "cluo@jobs2careers.com");
doc.addField("phone", "5127850000");
doc.addField("srcseg_id", 1);
doc.addField("srccamp_id", 1);
doc.addField("tags", "tag1");
doc.addField("tags", "tag2");
doc.addField("searchtags", "searchtags1");
doc.addField("searchtags", "searchtags2");
doc.addField("daily_capped", false);
doc.addField("qq_multiplier", 1.2);
doc.addField("j2c_apply", false);
doc.addField("reranker_info" , "rerankerInfo1");
doc.addField("major_category","100016");
doc.addField("major_category", "100017");
doc.addField("minor_category", "100016");
doc.addField("minor_category", "111017");
doc.addField("excluded_company", false);
solrClient.add(doc);
if(i%100 == 0){
System.out.println("process " + i + "/50000");
}
}
long end = System.currentTimeMillis();
System.out.println("total time is " + (end - start) + " ms");
System.out.println("total time is " + 50000 * 1000 / (end - start) + " jobs/s");
solrClient.commit();
}
}
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version> <!-- or use LATEST -->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version> <!-- or use LATEST -->
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.4.2</version>
</dependency>
I can get about 1000 jobs/s. That is multiple threads in Java.
Finally, I found that the bottle neck is not on the clients. The bottle neck is because of each job has 10K, and like 2000 jobs /s or 3000 jobs/s. It already used up all the network band on the SOLR indexer machine.
References:
https://github.com/mosuka/solrj-example/blob/master/src/main/java/com/github/mosuka/apache/solr/example/cmd/SearchCommand.java
https://github.com/mosuka/solrj-example/blob/master/src/main/java/com/github/mosuka/apache/solr/example/cmd/AddCommand.java
https://dzone.com/articles/solr-update-performance
Recently, I am using PHP and SolrJ to connect to SOLR indexer and search.
At first I am using PHP driver Solarium. The code is similar to theses
$this->clientActive = new Client(array(
'endpoint' => array(
'localhost' => array(
'host' => $solrHostActive,
'port' => $solrPortActive,
'path' => $solrPathActive,
'timeout' => 30,
)
)
));
public function addJobDocuments($jobs, $commit, $server){
//set up features needed for this method
$logger = $this->ioc->getService("logger");
$solrClient = $this->getSolrServer($server);
//get an update query instance
$update = $solrClient->createUpdate();
$docs = array();
$logger->debug(var_export($jobs, true));
foreach ($jobs as $job){
$doc = $this->prepareDocument($job, $update);
if($doc != null){
$docs[] = $doc;
}
}
if(!empty($docs)){
$update->addDocuments($docs);
if ($commit) {
$update->addCommit();
$logger->debug("committing during add documents.");
} else {
$logger->debug("NOT committing during add documents.");
}
return $this->ioc->retry(function () use ($solrClient, $update, $logger) {
$result = $solrClient->update($update);
$logger->debug("Update query executed---------");
$logger->debug("Query status: " . $result->getStatus());
$logger->debug("Query time: " . $result->getQueryTime());
}, 10, 3, "SolrSearchClient.addJobDocuments");
}
}
I found the performance for one single PHP is about 200jobs/s, each job is about 10k size. But that is one PHP process. If I am using ECS cluster, I can set up multiple ECS containers and then I can get 200 * N performance. That is ideal.
Then I tried with Java and SolrJ. The code is similar to these.
package com.sillycat.analyzerjava;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient;
import org.apache.solr.common.SolrInputDocument;
public class SolrMainApp {
public static void main(String[] args) throws SolrServerException, IOException {
System.out.println("-----------------start job-------------");
long start = System.currentTimeMillis();
String solrURL = "http://172.23.2.245:8983/job";
ExecutorService executorService =
new ThreadPoolExecutor(50, 200, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
SolrClient solrClient = new ConcurrentUpdateSolrClient.Builder(solrURL)
.withThreadCount(100)
.withQueueSize(1000)
.withExecutorService(executorService).build();
for(int i = 1;i<50000; i++){
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i);
doc.addField("customer_id", "1");
doc.addField("pool_id", 9528);
doc.addField("source_id", 1);
doc.addField("campaign_id", 1);
doc.addField("segment_id", 1);
doc.addField("job_reference", "referenceId1");
doc.addField("title", "title1");
doc.addField("description", "COMMERCIAL ROOFING SALESMEN, ESTIMATORS & INSTALLERS <br /> <br /> <br />Tired of living on a small draw and commission when you know the business inside out? <br /> <br />Been waiting for the opportunity to run your own show? <br /> <br />Well now you can. And withthe backing of an 82-year old leader in the business. <br /> <br />Company Description: <br /> <br />Southwestern Petroleum Corporation is a Texas-based oil company founded in 1933. Our ISO 9001 certified Coating Technology Division manufactures a full line of industrial and commercial protective coatings and waterproofing systems at manufacturing facilities in the US, Canada and Belgium. We pride ourselves on our track record of helping motivated people establish successful building maintenance companies in 75 countries around the world. <br /> <br /> Total independence be your own boss sell when where and how you want <br /> Keep all the profit from the jobs you sell <br /> Our top people earn six figures consistently <br /> Uncapped, industry leading product commission rate plus high margin profit on installation <br /> Competitive, world-class, industry leading products & systems <br /> Professional factory & ongoing training <br /> Responsive, experienced sales, marketing & technical support <br /> Financially stable, 82-year old private family-owned business <br /> <br />Why Our Company Is Unique: <br /> <br /> Our company was started by sales professionals <br /> Our sales professionals earn the highest commissions in our industry <br /> Our sales program offers true independence and freedom from sales quotas, reports and collections <br /> We treat our sales professionals with respect and integrity and dont downsize their territories or reduce their commissions when they start earning too much <br /> We provide sales tools to make your sales job easier <br /> We provide software tools to cut the paperwork and get more impressive estimates/proposals out fast <br /> Many of our sales professionals have been with us for 20, 30, 40 years and more <br /> Our sales professionals represent the best protective coatings and waterproofing systems in the world, used by Customers like Goodyear, Kraft, Hilton, O'Reilly Auto Parts, Siemens, Honeywell, General Electric, Nestle, Intercontinental Hotels, British Petroleum, Bosch, DuPont, Toyota, Hewlett Packard, Sheraton, Bridgestone, Ingersoll-Rand, Sara Lee and thousands of smaller businesses who demand the best <br /> Our sales professionals enjoy the security and sales potential of a vast, diversified market virtually every commercial, industrial or institutional building has a need for our products hotels, office buildings, manufacturing plants, apartment buildings, government buildings, airports, universities, food stores, shopping centers, hospitals, warehouses, garages, barns, stadiums, storage facilities, distribution centers and terminals and every other type of building you can think of <br /> <br />You Will Be a Perfect Fit for Our Company If: <br /> <br /> You are experienced in sales and enjoy helping business people solve problems and save money <br /> You would like the independence of owning your own business <br /> You prefer to sell a quality product you can be proud of instead of the cheapest one available <br /> You don't like paperwork and don't really need a boss to tell you what to do <br /> You are super competitive, hate losing at anything and prefer setting your own goals instead of dealing with company quotas or call reports <br /> You are a problem solver, good at overcoming obstacles <br /> You are confident in your abilities, make friends easily and have a great sense of humor <br /> You are organized and manage time well enough to work from a home office <br /> You can be demanding at times because you insist on excellent service from the company you represent <br /> You know how important high activity levels are to sales success <br /> You don't mind working hard and getting your hands dirty, if it translates into income <br /> You prefer to spend your days working with prospects and Customers instead of sitting in an office <br /> You would like more control over your own future <br /> You know you are capable of earning much more if given the right training, support and freedom to do it your way <br /> <br />Qualifications: <br /> <br /> Minimum 1 year of successful business to business sales experience <br /> Background in roofing, flooring, paving, construction materials, construction trades, engineering or contracting a plus <br /> <br />If you would like to know more about taking that first step towards financial independence and a secure future, please respond with your name, city, state and email address.");
doc.addField("url", "http://url1");
doc.addField("company_id", 1);
doc.addField("company", "company1");
doc.addField("cities", "austin");
doc.addField("cities", "dallas");
doc.addField("cpc", 12);
doc.addField("reg_cpc",10);
doc.addField("posted","2016-06-23T22:00:00Z");
doc.addField("created","2016-05-23T22:00:00Z");
doc.addField("experience", 1);
doc.addField("salary", 1);
doc.addField("education", 1);
doc.addField("jobtype", 1);
doc.addField("industry", 1);
doc.addField("quality_score", 1.0);
doc.addField("boost_factor",1.0);
doc.addField("paused", false);
doc.addField("budget", 100);
doc.addField("email", "cluo@jobs2careers.com");
doc.addField("phone", "5127850000");
doc.addField("srcseg_id", 1);
doc.addField("srccamp_id", 1);
doc.addField("tags", "tag1");
doc.addField("tags", "tag2");
doc.addField("searchtags", "searchtags1");
doc.addField("searchtags", "searchtags2");
doc.addField("daily_capped", false);
doc.addField("qq_multiplier", 1.2);
doc.addField("j2c_apply", false);
doc.addField("reranker_info" , "rerankerInfo1");
doc.addField("major_category","100016");
doc.addField("major_category", "100017");
doc.addField("minor_category", "100016");
doc.addField("minor_category", "111017");
doc.addField("excluded_company", false);
solrClient.add(doc);
if(i%100 == 0){
System.out.println("process " + i + "/50000");
}
}
long end = System.currentTimeMillis();
System.out.println("total time is " + (end - start) + " ms");
System.out.println("total time is " + 50000 * 1000 / (end - start) + " jobs/s");
solrClient.commit();
}
}
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version> <!-- or use LATEST -->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version> <!-- or use LATEST -->
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.4.2</version>
</dependency>
I can get about 1000 jobs/s. That is multiple threads in Java.
Finally, I found that the bottle neck is not on the clients. The bottle neck is because of each job has 10K, and like 2000 jobs /s or 3000 jobs/s. It already used up all the network band on the SOLR indexer machine.
References:
https://github.com/mosuka/solrj-example/blob/master/src/main/java/com/github/mosuka/apache/solr/example/cmd/SearchCommand.java
https://github.com/mosuka/solrj-example/blob/master/src/main/java/com/github/mosuka/apache/solr/example/cmd/AddCommand.java
https://dzone.com/articles/solr-update-performance
发表评论
-
Stop Update Here
2020-04-28 09:00 310I will stop update here, and mo ... -
NodeJS12 and Zlib
2020-04-01 07:44 465NodeJS12 and Zlib It works as ... -
Docker Swarm 2020(2)Docker Swarm and Portainer
2020-03-31 23:18 361Docker Swarm 2020(2)Docker Swar ... -
Docker Swarm 2020(1)Simply Install and Use Swarm
2020-03-31 07:58 363Docker Swarm 2020(1)Simply Inst ... -
Traefik 2020(1)Introduction and Installation
2020-03-29 13:52 328Traefik 2020(1)Introduction and ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 419Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 428Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 364Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 444VPN Server 2020(2)Docker on Cen ... -
Buffer in NodeJS 12 and NodeJS 8
2020-02-25 06:43 376Buffer in NodeJS 12 and NodeJS ... -
NodeJS ENV Similar to JENV and PyENV
2020-02-25 05:14 464NodeJS ENV Similar to JENV and ... -
Prometheus HA 2020(3)AlertManager Cluster
2020-02-24 01:47 413Prometheus HA 2020(3)AlertManag ... -
Serverless with NodeJS and TencentCloud 2020(5)CRON and Settings
2020-02-24 01:46 330Serverless with NodeJS and Tenc ... -
GraphQL 2019(3)Connect to MySQL
2020-02-24 01:48 242GraphQL 2019(3)Connect to MySQL ... -
GraphQL 2019(2)GraphQL and Deploy to Tencent Cloud
2020-02-24 01:48 443GraphQL 2019(2)GraphQL and Depl ... -
GraphQL 2019(1)Apollo Basic
2020-02-19 01:36 320GraphQL 2019(1)Apollo Basic Cl ... -
Serverless with NodeJS and TencentCloud 2020(4)Multiple Handlers and Running wit
2020-02-19 01:19 306Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(3)Build Tree and Traverse Tree
2020-02-19 01:19 310Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(2)Trigger SCF in SCF
2020-02-19 01:18 284Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(1)Running with Component
2020-02-19 01:17 302Serverless with NodeJS and Tenc ...
相关推荐
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
- **介绍**: SolrJ是Solr提供的Java客户端库,用于简化Solr服务器的交互过程。 **2. 添加SolrJ依赖** - **步骤说明**: 在项目的构建文件中添加SolrJ的依赖项。 - **操作详情**: 对于Maven项目,在`pom.xml`文件...
Solr-Solrj 5.0.0 是一个用于与Apache Solr进行交互的Java客户端库。在本文中,我们将深入探讨Solr-Solrj的使用、功能及其与自建Solr服务的集成,特别是涉及到中文分词的场景。 Apache Solr是一款流行的开源全文...
SolrJ是Apache Solr项目的Java客户端库,它为与Solr服务器进行交互提供了便利的API。这个压缩包包含了两个版本的SolrJ库:solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar。这两个版本的差异主要在于对Solr服务器的...
solr-solrj-4.9.0.jar
solrj工具类封装,包括条件批量查询,批量增删改,分段修改。
Solr-Solrj是Apache Lucene项目下的一个子项目,专门为Apache Solr搜索引擎提供Java客户端库。Solr是一款强大的全文检索服务器,而Solrj则是与之交互的Java API,使得开发人员能够轻松地在Java应用程序中集成Solr的...
solr-solrj-4.4.0.jar
Solrj是Apache Solr的一个Java客户端库,用于与Solr服务器进行交互。它提供了丰富的API,使得开发人员可以方便地执行索引、查询、配置和管理Solr实例。Solrj简化了Solr的集成工作,例如在Java应用中添加或更新文档,...
solrJ是Java连接solr进行查询检索和索引更新维护的jar包。
solr-solrj-6.6.0.jar
apache-solr-solrj-3.5.0.jar
Java整合Solr5.0的过程中,SolrJ是Java客户端库,用于与Solr服务器进行交互,提供了方便的API来执行各种操作。本篇文章将详细阐述如何使用SolrJ进行索引管理和查询。 首先,集成SolrJ需要将相应的依赖库引入项目。...
solr详细配置教程与solrj的使用
SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr进行交互变得简单。这个“solrj使用教程”很可能是为了帮助开发者了解如何使用SolrJ来连接、查询和管理Solr索引。下面将详细介绍SolrJ的...
SolrJ是Solr的Java客户端库,用于与Solr服务器进行交互,包括创建、更新、删除索引和执行查询。在DEMO中,你会看到如何使用SolrJ连接到Solr服务器,创建`SolrServer`对象,以及如何使用`SolrInputDocument`来添加、...
solr-solrj-4.10.3.jar。
标题中的"solr ssm java"表明这是一个使用Java语言,结合Spring、SpringMVC和MyBatis(SSM)框架的项目,其中整合了Apache Solr搜索引擎。让我们深入了解一下这些技术及其相互作用。 **Solr**: Apache Solr是基于...
1.下载solr 下载地址 http://www.apache.org/dyn/closer.lua/lucene/solr/8.0.0 windows下载zip,linux下载tgz 下载完解压 2.solr启动&停止 solr-8.0.0\bin目录下执行cmd solr start 启动 solr stop -all 3.创建solr...