Solr.NET快速入门(七)【核心管理,Fluent API】
2017-03-18 22:43
316 查看
SolrNet提供了一些功能来执行Solr核心管理命令。 有关这些命令的详细说明,请参阅Solr wiki。
首先,构建ISolrCoreAdmin的实例:
ISolrCoreAdmin可以执行以下核心管理命令:
一些例子:
这些可以在接受ISolrQuery的任何地方使用,例如:
它们也可以与布尔运算符混合:
查询
此API已弃用。 请不要使用它。 如果您使用它,请注意,它将在未来版本的SolrNet中删除。
例:
首先,构建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"); }
相关文章推荐
- Coding.net 代码管理快速入门
- Solr.NET快速入门(六)【聚合统计,分组查询】
- Solr.NET快速入门(一)【基本使用,映射字段】
- Solr.NET快速入门(八)【多核多实例,映射验证】
- Solr.NET快速入门(四)【高亮显示】
- Solr.NET快速入门(七)【覆盖默认映射器,NHibernate集成】
- Solr.NET快速入门(九)【多核多实例,映射验证】
- Coding.net 代码管理快速入门
- Solr.NET快速入门(五)【相似查询,拼写检查】
- Solr.NET快速入门(三)【高亮显示】
- Solr.NET快速入门(八)【覆盖默认映射器,NHibernate集成】
- Solr.NET快速入门(九)【二进制文档上传】【完】
- Solr.NET快速入门(二)
- Solr.NET快速入门(五)【聚合统计,分组查询】
- Solr.NET快速入门(二)【查询】
- .Net Core WebAPI 基于Task的同步&异步编程快速入门
- Netsharp快速入门(之16) Netsharp基础功能(权限管理)
- Solr.NET快速入门(四)【相似查询,拼写检查】
- 中文 ASP.NET快速入门教材
- .net快速入门方法,转csdn