SolrServer可以操作索引,包括更新删除查询等操作
以下是httpClient实例化方式,需要tomcat运行Solr服务
1、ConcurrentUpdateSolrServer实例化SolrServer,该类实例化多用于更新删除索引操作
ConcurrentUpdateSolrServer(String solrServerUrl, int queueSize, int threadCount)
solrServerUrl是Solr服务器的地址,
queueSize缓冲区大小
threadCount 后台线程数<br><br>
2、HttpSolrServer 实例化SolrServer,该类实例化多用于查询操作
HttpSolrServer(String baseURL)
baseURL是Solr的服务器地址
3、LBHttpSolrServer实例化SolrServer,用于有多个Solr服务器,负载均衡
LBHttpSolrServer(String... solrServerUrls)
solrServerUrls是多个Solr的服务器地址,用,号分隔
以下是本地实例化,即项目包含Solr服务,不需要tomcat运行Solr服务
EmbeddedSolrServer
private static CoreContainer.Initializer initializer = null
private static CoreContainer coreContainer = null
private static EmbeddedSolrServer server = null
static {
try {
System.setProperty("solr.solr.home", "D://test//solrcore//core0")
initializer = new CoreContainer.Initializer()
coreContainer = initializer.initialize()
server = new EmbeddedSolrServer(coreContainer, "")
} catch (Exception e) {
e.printStackTrace()
}
}
当服务器关闭时。通过构造函数实例化Servlet对象,当第一次浏览器向服务器发送请求,访问servlet,调用init方法进行初始化(servlet对象一般只有一个,会常驻内存)init方法只会调用一次,开启一个线程,去调用service方法,以后在访问这个servlet都会开启一个线程来调用service方法去处理请求操作,当服务器关闭时,会调用servlet的destroy方法将servlet实例销毁。
一般来说HttpContext对象是Web服务器来实例化的。因为Web服务器才知道请求、响应、Session这些是什么。你要实例化,你如何知道这些?还得借助Web服务器给你的一个HttpContext对象的信息,那么你都有现成的HttpContext了,还用自己再实例化么?
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)