使用API​​

时间:2018-05-10 11:07:33

标签: solr lucene solrj solrcloud spring-data-solr

我使用SolrCLoud是搜索具有多个属性的文档。在我的应用程序中,如果查询未指定任何特定字段,我想搜索所有字段,例如term1 AND term2查询应在所有字段中搜索该组合。

阅读documentation似乎可以为搜索定义默认字段。

我发现examples更改了搜索处理程序的默认构面,  但不是默认搜索字段,而是查询处理程序的默认搜索字段。

有谁知道如何使用Solr API更改QueryHandler中的默认字段?

1 个答案:

答案 0 :(得分:1)

您可以使用Java代码更新以下属性。例如您想要更新autoCommit和autoSoftCommit属性。

Map<String, String> props= new HashMap<>();
props.put("solr.autoCommit.maxTime", 10000);
props.put("solr.autoSoftCommit.maxTime", 15000);

StringBuilder command = new StringBuilder("{\"set-property\": {");
   for (Map.Entry<String, String> entry: props.entrySet())
   {
      command.append('"').append(entry.getKey()).append('"').append(':');
      command.append(entry.getValue()).append(',');
   }
   command.setLength(command.length()-1); // remove last comma
   command.append("}}");

   GenericSolrRequest rq = new GenericSolrRequest(SolrRequest.METHOD.POST, "/config", null);
   ContentStream content = new ContentStreamBase.StringStream(command.toString());
   rq.setContentStreams(Collections.singleton(content));
   rq.process(solrClient);