- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 SolrJ 3.6 连接器连接到配置了基本身份验证的 Solr 1.4 搜索服务器?
最佳答案
基于instructions on using SolrJ :
获取相关依赖项,例如使用maven:
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.1.2</version>
</dependency>
使用 SolrJ 3.6 和最新的 Apache Http Components http 客户端连接到 Solr 1.4 的示例应用程序以协商基本身份验证:
import java.io.IOException;
import java.util.Iterator;
import org.apache.http.HttpException;
import org.apache.http.HttpRequest;
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.AbstractHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HttpContext;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
/**
* Sample app
*
*/
public class App
{
public static void main( String[] args ) throws SolrServerException, IOException
{
String url = "https://localhost:8080/solr/";
String httpAuthUser = "solr_admin";
String httpAuthPass= "somePassword";
// Configure latests Apache Http Components http client
HttpClient httpClient = new DefaultHttpClient();
if (httpAuthUser != null && httpAuthPass != null) {
AbstractHttpClient client = (AbstractHttpClient) httpClient;
App a = new App();
client.addRequestInterceptor(a.new PreEmptiveBasicAuthenticator(httpAuthUser, httpAuthPass));
}
// Configure XMLResponseParser as standard javabin parser does not work with 1.4
SolrServer solr = new HttpSolrServer(url, httpClient, new XMLResponseParser());
// Test adding some data
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "552199");
document.addField("name", "Gouda cheese wheel");
document.addField("price", "49.99");
UpdateResponse uresponse = solr.add(document);
System.out.println("UpdateResponse"+uresponse.getStatus());
solr.commit();
// Query for the data just added
SolrQuery parameters = new SolrQuery();
parameters.set("q", "*");
QueryResponse response = solr.query(parameters);
SolrDocumentList list = response.getResults();
Iterator<SolrDocument> si = list.iterator();
System.out.println("Solr document"+list.getNumFound());
while(si.hasNext()){
System.out.println("Solr document"+si.next().toString());
}
}
protected class PreEmptiveBasicAuthenticator implements HttpRequestInterceptor {
private final UsernamePasswordCredentials credentials;
public PreEmptiveBasicAuthenticator(String user, String pass) {
credentials = new UsernamePasswordCredentials(user, pass);
}
public void process(HttpRequest request, HttpContext context)
throws HttpException, IOException {
request.addHeader(BasicScheme.authenticate(credentials,"US-ASCII",false));
}
}
}
关于java - 使用 SolrJ 客户端连接器 3.6 连接到 Solr 1.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12650924/
是否可以使用 SolrJ 客户端从某些 Core 检索所有存储的字段? 例如 谢谢,彼得 最佳答案 您可以使用特定核心的 SolrJ 客户端获取有关字段的信息。 使用以下代码片段进行检索。 i
是否可以使用 SolrJ 客户端从某些 Core 检索所有存储的字段? 例如 谢谢,彼得 最佳答案 您可以使用特定核心的 SolrJ 客户端获取有关字段的信息。 使用以下代码片段进行检索。 i
Exception in thread "main" org.apache.http.ParseException: Invalid content type: at org.apache.h
大家好, 我必须针对索引查询多个值(就像 IN (id1, id2, id3) sql 查询一样) 使用 SolrJ,换句话说,我想检索与一组值匹配的字段的文档。 由于 solrj api 有粗略的记
我的(网络)应用程序中有以下工作流程: 从存档下载 pdf 文件 索引文件 删除文件 我的问题是在索引文件后,它保持锁定状态,并且删除部分引发异常。 这是我用于索引文件的代码片段: try {
我正在使用 SolrJ API 向 Solr 4.3 核心添加文档,我注意到我在我使用的股票 solrconfig 中将自动提交设置为 15 秒,如下所示。 ${solr.autoCommi
我们正在使用 SolrJ 在 Solr 上构建一个包装器。 此包装器将允许客户端指定集合名称,然后使用 SolrJ 包装器与该集合交互以进行插入/更新/查询。 我已经能够执行插入/更新/查询操作,但无
我有一个 solr 模式,其中包含不同类型的动态字段。例如,在 schema.xml 中有: 我想使用 SolrJ 注释的 POJO 访问这些字段。我知道我可以为 POJO 中的每种数据类型
我正在尝试使用 TermsComponent使用 Solrj 实现自动建议,但我不知道如何指定路径(即 /terms 的 http://localhost:8983/solr/terms 部分)。 如
我在 Solr 4.0 中有一些文件.我希望首先显示最相关的记录,然后显示不太相关的记录。 例如,我有 3 个文件,标题如下 - 收入分配政策 收入分配与经济政策 发展中国家的收入分配政策 现在,当我
Solr 4 测试版已经发布,GA 版本即将推出。如此处所述,部分文档更新已存在一段时间:http://solr.pl/en/2012/07/09/solr-4-0-partial-documents
如何使用 SolrJ 按日期请求? 我得到一个格式为'01/10/2014'的日期作为参数。然后我将此格式转换为 Date 对象,并将该对象转换为 UTC 格式。这是我正在做的事情的代码示例: pub
每当我在 Solr 上执行查询时,即使是最简单的查询 *:*,我也会收到错误消息 Exception in thread "main" org.apache.solr.client.solrj.Sol
我正在运行以下程序。主线程正常运行和终止,但程序继续运行,因为有一个名为 pool-1-thread-1 的线程,该线程永远不会终止。谁能建议代码有什么问题吗?配置文件均在 Solr 标准发行版中提供
我有以下 solrj 查询: HttpSolrClient solr = new HttpSolrClient.Builder("http://10.xx.xxx.xxx:8983/solr"
我正在使用 Solrj 的原子更新。它工作得很好,但我不知道如何删除现有文档中的字段。 在 Solr 教程 ( http://wiki.apache.org/solr/UpdateXmlMessage
我在 Web 应用程序中使用 CommonsHttpSolrServer。在多个请求中重用 CommonsHttpSolrServer 是否安全,还是应该为每个请求实例化一个新对象?无法在 API 文
我正在使用 solrj 从 solr 安装执行查询搜索。 这就是我所拥有的: public List search(String query, int first, int rows) { L
我有一个“查询字符串”格式的 SOLR 查询 q=*&fq=myfilters&... 有没有办法从中构建 SolrQuery? 我看到有ClientUtils.toQueryString存在,基本上
我在我的 Web 应用程序中使用 Solr 作为搜索引擎。我使用 DataImportHandler 自动将数据从我的数据库导入到搜索索引中。当 DataImportHandler 添加新数据时,数据
我是一名优秀的程序员,十分优秀!