Solr.NET快速入门(七)【核心管理,Fluent API】

SolrNet提供了一些功能来执行Solr核心管理命令。 有关这些命令的详细说明,请参阅Solr wiki。

首先,构建ISolrCoreAdmin的实例:

const string solrUrl ="http://localhost:8983/solr";
var headerParser = ServiceLocator.Current.GetInstance<ISolrHeaderResponseParser>();
var statusParser = ServiceLocator.Current.GetInstance<ISolrStatusResponseParser>();
ISolrCoreAdmin solrCoreAdmin = new SolrCoreAdmin(new SolrConnection(solrUrl), headerParser, statusParser);

ISolrCoreAdmin可以执行以下核心管理命令:

Status

//获取所有注册核心的状态:
IList<CoreResult> coreStatus = solrCoreAdmin.Status();

///获取单个核心的状态:
var coreStatus = solrCoreAdmin.Status("core1");

Create

solrCoreAdmin.Create(coreName: "items", instanceDir: "items");

Reload

solrCoreAdmin.Reload("core1");

Rename

solrCoreAdmin.Rename("core1", "newCoreName");

Swap

solrCoreAdmin.Swap("core0", "core1");

Unload

solrCoreAdmin.Swap("core0", UnloadCommand.Delete.Data);

Merge

solrCoreAdmin.Merge("destinationCore", new MergeCommand.SrcCore("sourceCore0"), new MergeCommand.SrcCore("sourceCore1"));

Alias

solrCoreAdmin.Alias("existingCore", "alias");

Fluent API

查询构建

一些例子:

Query.Simple("name:solr"); // name:solr
Query.Field("name").Is("solr"); // name:solr
Query.Field("price").From(10).To(20); // price:[10 TO 20]
Query.Field("price").In(10, 20, 30); // price:10 OR price:20 OR price:30
Query.Field("name").HasAnyValue(); // name:[* TO *]

这些可以在接受ISolrQuery的任何地方使用,例如:

ISolrOperations<Product> solr = ...
solr.Query(Query.Field("name").HasAnyValue());

它们也可以与布尔运算符混合:

ISolrOperations<Product> solr = ...
solr.Query(Query.Field("name").HasAnyValue() && Query.Field("price").Is(0));

查询

此API已弃用。 请不要使用它。 如果您使用它,请注意,它将在未来版本的SolrNet中删除。

例:

[SetUp]
public void setup() {
    Solr.Connection = new SolrConnection("http://localhost:8983/solr");
}

[Test]
public void QueryById() {    
    ISolrQueryResults<TestDocument> r = Solr.Query<TestDocument>().By("id").Is("123456").Run();
}

[Test]
public void QueryByRange() {
    ISolrQueryResults<TestDocument> r = Solr.Query<TestDocument>().By("id").Between(123).And(456).OrderBy("id", Order.ASC).Run();
}

[Test]
public void DeleteByQuery() {
    Solr.Delete.ByQuery<TestDocument>("id:123456");
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值