C# 调用SolrNet操作solr

时间:2021-10-26 16:56 作者:Mr.Pan 阅读数:197


在项目中添加SolrNet,需要注意,SolrNet的依赖项,netframework=4.6  ,不能小于4.6

image.png


进行增删改查 操作

public class Product
    {
        [SolrUniqueKey("id")]
        public string Id { get; set; }

        [SolrField("manuexact")]
        public string Manufacturer { get; set; }

        [SolrField("cat")]
        public ICollection<string> Categories { get; set; }

        [SolrField("price")]
        public decimal Price { get; set; }

        [SolrField("inStock")]
        public bool InStock { get; set; }
    }
 先连接solr
 Startup.Init<Product>("http://localhost:8983/solr/test1");
 
 
 新增操作
 
 var p = new Product
            {
                Id = "SP2514N",
                Manufacturer = "SamsungElectronicsCo.Ltd.",
                Categories = new[] {
                    "electronics",
                    "hard drive",
                },
                Price = 92,
                InStock = true,
            };

            var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
            solr.Add(p);
            solr.Commit();
            
            
            
  
 查询
  var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
            SolrQueryResults<Product> results = solr.Query(new SolrQueryByField("id", "SP2514N"));
          
            Console.WriteLine(results[0].Price);
            
            
            
  删除
   var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
            solr.Delete(new SolrQueryByField("id", "SP2514N"));
            solr.Commit();

可能会遇到的问题

类型“System.Collections.ArrayList”的对象无法转换为类型“System.String”。

解决办法:类型转换失败的情况很常见,由于创建的字段类型默认是可以多值存储,所以会自动转换为List

修改字段配置文件,路径为:\server\solr\test1\conf\

image.png

使用文本打开文件,修改字段设置

image.png

记得重启solr服务,再次测试成功查询结果




推荐文章

[推荐] .NET Core 学习资料精选:入门

[推荐] 数据库常见死锁原因及处理

[推荐] C# 设置Excel数据自适应行高、列宽的2种情况 (转)

[推荐] C++ vector 和set结合数字去重练习

[推荐] win7 .net core 部署 The library hostfxr.dll was found, but loading it from C:\<path_to_app>\hostfxr.dll failed

[推荐] JdbcTemplate多数据源使用

[推荐] asp.net core系列 67 Web压力测试工具WCAT

[推荐] 第七天 让你的container实现跨主机访问

[推荐] .Net Core 2.0 获取客户端IP地址

[推荐] 深入学习Redis(2):持久化

[推荐] 8天玩转并行开发——第八天 用VS性能向导解剖你的程序

[推荐] asp.net core系列 33 EF查询数据 (2)

[推荐] nodejs app.use(express.static) 静态文件托管 (四)

[推荐] C++ Lambda表达式练习

[推荐] C++ 稀疏表的练习

[推荐] Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

[推荐] 试试发布

[推荐] JavaWeb-Log4j: WARN No appenders could be found for logger

[推荐] C++中 *p++ 到底是 *(p++) 还是 (*p)++ 1. 猜想

[推荐] C++ 模板练习


评论列表



注册用户登录后才能发表评论,请登录注册,访问 博客首页