Support of Apache Solr for .NET
Supported Client Libraries
Library | Version | Supported |
---|---|---|
SolrNet | Up to:1.1 | |
SolrNet.Cloud | Up to:1.1 |
Supported Operations
Operations | Methods Supported |
---|---|
Insert | SolrNet.ISolrOperations.Add SolrNet.ISolrOperations.AddAsync SolrNet.ISolrOperations.AddWithBoost SolrNet.ISolrOperations.AddWithBoostAsync SolrNet.ISolrOperations.Extract SolrNet.ISolrOperations.ExtractAsync SolrNet.ISolrOperations.AddRange SolrNet.ISolrOperations.AddRangeAsync SolrNet.ISolrOperations.AddRangeWithBoost SolrNet.ISolrOperations.AddRangeWithBoostAsync SolrNet.ISolrBasicOperations.AddWithBoost SolrNet.ISolrBasicOperations.AddWithBoostAsync |
Select | SolrNet.ISolrReadOnlyOperations.Query SolrNet.ISolrReadOnlyOperations.QueryAsync SolrNet.ISolrBasicReadOnlyOperations.Query SolrNet.ISolrBasicReadOnlyOperations.QueryAsync SolrNet.ISolrBasicReadOnlyOperations.MoreLikeThis SolrNet.ISolrBasicReadOnlyOperations.MoreLikeThisAsync |
Delete | SolrNet.ISolrOperations.Delete SolrNet.ISolrOperations.DeleteAsync SolrNet.ISolrBasicOperations.Delete SolrNet.ISolrBasicOperations.DeleteAsync |
Update | SolrNet.ISolrOperations.AtomicUpdate SolrNet.ISolrOperations.AtomicUpdateAsync SolrNet.ISolrBasicOperations.AtomicUpdate SolrNet.ISolrBasicOperations.AtomicUpdateAsync |
Objects
Icon | Description |
---|---|
DotNet SolrNet Index | |
DotNet Unknown SolrNet Index | |
DotNet SolrNet Client |
Links
All links are created between the caller .NET Method objects and DotNet SolrNet Index objects:
Link type | Methods Supported |
---|---|
useSelectLink | Query QueryAsync |
useUpdateLink | AtomicUpdate AtomicUpdateAsync |
useInsertLink | Add AddAsync AddWithBoost AddWithBoostAsync Extract ExtractAsync AddRange AddRangeAsync AddRangeWithBoost AddRangeWithBoostAsy |
useDeleteLink | Delete DeleteAsync |
What results can you expect?
Some example scenarios are shown below:
DotNet SolrNet Client
using CommonServiceLocator;
using SolrNet;
namespace SOlrStandaloneApp
{
public class Tests
{
public void Setup()
{
Startup.Init<Product>("http://localhost:8983/solr/mycore");
}
}
}
Select Operation
using CommonServiceLocator;
using SolrNet;
namespace SOlrStandaloneApp
{
public class Tests
{
[Test]
public void Query()
{
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
var results = solr.Query(new SolrQueryByField("id", "SP2514N"));
Assert.AreEqual(1, results.Count);
Console.WriteLine(results[0].Price);
}
}
}
Insert Operation
using CommonServiceLocator;
using SolrNet;
namespace SOlrStandaloneApp
{
public class Tests
{
[Test]
public void Add()
{
var p = new Product
{
Id = "SP2514N",
Manufacturer = "Samsung Electronics Co. Ltd.",
Categories = new[] {
"electronics",
"hard drive",
},
Price = 92,
InStock = true,
};
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
solr.Add(p);
solr.Commit();
}
}
}
Update Operation
using CommonServiceLocator;
using SolrNet;
namespace SOlrStandaloneApp
{
[Test]
public void AtomicUpdate()
{
var p = new Product
{
Id = "SP2514N",
Manufacturer = "Samsung Electronics Co. Ltd.",
Categories = new[] {
"electronics",
"hard drive",
},
Price = 92,
InStock = true,
};
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
solr.AtomicUpdate(p,null);
solr.Commit();
}
}
}
Delete Operation
using CommonServiceLocator;
using SolrNet;
namespace SOlrStandaloneApp
{
[Test]
public void Remove()
{
var p = new Product
{
Id = "SP2514N",
Manufacturer = "Samsung Electronics Co. Ltd.",
Categories = new[] {
"electronics",
"hard drive",
},
Price = 92,
InStock = true,
};
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
solr.Delete(p);
solr.Commit();
}
}
Known Limitations
- Startup.Init and Startup.InitAsync are only API currently supported for server connection of SolrNet and SolrNet Cloud.