Tag: solrnet

SolrNet连接的说明

为什么SolrNet连接的容器保持静态? 这是一个非常大的错误,因为在我们的应用程序中,我们向应用程序发送异步请求时,SolrNet表现exception。 我如何在SolrNet中避免这个问题? class P { static void M(string[] a) { Thread t = new Thread(delegate() { f1(); }); Thread t1 = new Thread(delegate() { f2(); }); t.Start(); t1.Start(); t.Join(); t1.Join(); } static void f1() { Startup.Init(new SolrNet.Impl.SolrPostConnection(“http://localhost:8983/solr3/”)); ISolrOperations solrOperations2 = ServiceLocator.Current.GetInstance<ISolrOperations>(); } static void f2() { Startup.Init(new SolrNet.Impl.SolrPostConnection(“http://localhost:8983/solr1/”)); ISolrOperations solrOperations2 = ServiceLocator.Current.GetInstance<ISolrOperations>(); } }

这个solr查询有什么问题

我想找到与solr中的特定文档类似的所有文档。 我已经安装了solr并提出了一些疑问。 我试图提出的查询给出了一个我无法在互联网上制作或研究的错误。 你能告诉我一些吗? 我正在使用solrnet客户端,但如果solrnet不适合这种类型的查询,我很乐意使用纯solr并读取XML。 这是我正在使用的查询: http://192.168.1.10:8080/solr/mlt?q=id:12&mlt.fl=content&mlt.mindf=1&mlt.mintf=1 这是我的架构xml 这是我收到的错误:

Solr:如何搜索多个字段

我正在使用solrnet。 我有一个标题和描述字段。 我需要同时搜索这两个字段。 我该怎么做呢?

如何将Space Solr添加到Solrnet查询

我在使用docker的Windows机器上运行Solr。 我已经下载了Spatial Solr插件 ,我最终设法启动并运行。 我也使用Solrnet从我的asp.net mvc项目查询Solr。 现在,将数据添加到我的索引似乎工作正常,SpatialTierUpdateProcessorFactory也可以正常工作。 问题是: 如何使用Solrnet库将空间查询添加到我的常规查询中。 我尝试使用“ExtraParams”参数添加它,但效果不佳。 以下是我尝试将空间查询与数据范围查询相结合的示例。 日期范围查询工作正常,没有附加空间查询: new SolrQuery(“{!spatial lat=51.5224 long=-2.6257 radius=10000 unit=km calc=arc threadCount=2}”) && new SolrQuery(MyCustomQuery.Query) && new SolrQuery(DateRangeQuery); 这导致对Solr的以下查询: (({!spatial lat=51.5224 long=-2.6257 radius=100 unit=km calc=arc threadCount=2} AND *:*) AND _date:[2010-05-07T13:13:37Z TO 2011-05-07T13:13:37Z]) 我得到的错误信息是: 远程服务器返回错误:(400)错误请求。 SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.queryParser.Pars eException: Cannot parse ‘(({!spatial lat=51.5224 lng=-2.6257 radius=10000 unit= km calc=arc […]

SolrNet:尝试添加和提交时SolrConnectionException(400)错误请求

我已经到了SolrNet执行“添加”方法的地步,但当我尝试“提交”时,我收到错误。 以下是我的schema.xml,模型,调用它的代码以及我得到的错误。 甚至更奇怪的是,尽管有错误,我重新启动Tomcat之后模型被添加到我的Solr索引中(因此它仍然添加了我的模型,尽管错误但不是立即): schema.xml(字段和字段): Model(Product.cs)*注意 – PageId使用Solr默认的“id”,它是一个字符串,唯一且必需: public class Product { [SolrUniqueKey(“id”)] public string PageId { get; set; } [SolrField(“part_numbers”)] public ICollection PartNumbers { get; set; } [SolrField(“page_url”)] public string PageUrl { get; set; } [SolrField(“product_name”)] public string Name { get; set; } } 代码初始化,调用Add和Commit *注意 – 这是一个unit testing,所以init只调用一次: Startup.Init(“http://localhost:8080/solr”); Product testProd = new Product() […]

如何在Web API中维护请求的状态或队列

我有情况,我必须在Web API方法中接收请求,排队这些请求,然后将批量发送到数据库(Solr实例)。 我不确定如何维护来自多个来源的一批请求。 现在我将每个请求数据以json格式写入磁盘上的文件,稍后我将有一个Windows服务,浏览文件夹读取所有文件,更新数据库并删除这些文件。 这是我在Web API中所做的 public void Post(LogEntry value) { value.EventID = Guid.NewGuid(); value.ServerTime = DateTime.UtcNow; string json = JsonConvert.SerializeObject(value); using(StreamWriter sw = new StreamWriter(value.EventID.ToString())) { sw.Write(json); } } (这里的EventID是GUID) 这个过程看起来不正确,必须有一种维护请求队列的方法,但我不确定如何在多个请求期间维护队列。 我这样做的原因是,在solr实例中批量插入比通过SolrNet插入单个记录更快。 我希望在Web API上每秒至少获得100个请求。 我想创建一批1000个请求并每10秒更新一次solr实例。 请不要认为我需要代码,只需知道我应采用什么策略来维护请求/状态队列。

使用SOLR计算两个ulongs之间的“相似性”/“bitcount”

我们有一个图像数据库,我使用David Oftedal实施的Neal Krawetz博士的方法计算了PHASH。 部分示例代码计算这些长度之间的差异在这里: ulong hash1 = AverageHash(theImage); ulong hash2 = AverageHash(theOtherImage); uint BitCount(ulong theNumber) { uint count = 0; for (; theNumber > 0; theNumber >>= 8) { count += bitCounts[(theNumber & 0xFF)]; } return count; } Console.WriteLine(“Similarity: ” + ((64 – BitCount(hash1 ^ hash2)) * 100.0) / 64.0 + “%”); 挑战是我只知道其中一个哈希,我想查询SOLR以找到相似顺序的其他哈希值。 几点说明: 在这里使用SOLR(只有我有的替代品是HBASE) […]

从C#客户端索引Solr中的pdf文档

基本上我正在尝试索引Solr中的word或pdf文档并找到ExtractingRequestHandler,但无法弄清楚如何在执行HTTP POST请求的c#中编写代码,如在Solr wiki中: http://wiki.apache。 org / solr / ExtractingRequestHandler 。 我已经使用Solr zip中example / solr目录中的文件在Tomcat 7(7.0.22)上安装了Solr 3.4,我没有改变任何东西。 ExtractingRequestHandler应该在solrconfig.xml中开箱即用,并准备好使用,对吗? 你们有些人可以提供一个C#(HttpWebRequest)示例,说明如何制作HTTP POST请求并上传PDF文件,就像在Solr wiki中使用curl一样? 我看了整个这个网站和许多其他人试图找到一个例子或教程如何完成,但没有找到任何东西。 编辑: 我终于设法使用SolrNet让它工作了! 为了使它能够工作,您需要将它从Solr zip复制到Solr安装目录中的lib文件夹: 来自dist文件夹的apache-solr-cell-3.4.0.jar文件 contrib \ extract \ lib目录的内容 使用SolrNet 0.4.0 beta 2,此代码可以完成以下任务: Startup.Init(“YOUR-SOLR-SERVICE-PATH”); var solr = ServiceLocator.Current.GetInstance<ISolrOperations>(); using (FileStream fileStream = File.OpenRead(“FILE-PATH-FOR-THE-FILE-TO-BE-INDEXED”)) { var response = solr.Extract( new ExtractParameters(fileStream, “doc1”) { ExtractFormat […]

如何让SolrNet中的建议器组件工作?

我已经配置了solrconfig.xml和schema.xml来查询建议。 我能从url获得建议 http://localhost:8080/solr/collection1/suggest?q=ha&wt=xml 我的SolrConfig.xml看起来像 当然,我的solr查询看起来像 uid ….. 我的schema.xml看起来像这样 suggest name org.apache.solr.spelling.suggest.Suggester org.apache.solr.spelling.suggest.tst.TSTLookup true internal 0.5 2 int name=”minPrefix”>1 5 4 0.01 .01 wordbreak solr.WordBreakSolrSpellChecker name true true 10 text true suggest <!–wordbreak–> on true 10 5 5 true true 10 5 spellcheck 我调用SolrNet API的代码如下所示 new SolrBaseRepository.Instance().Start(); var solr = ServiceLocator.Current.GetInstance<ISolrOperations>(); var options = new QueryOptions […]

在这种情况下无法获得响应

我有问题。 本地一切正常,但在生产服务器中它总是抛出exception’响应在此上下文中不可用’。 可能是什么问题? 我注意到由于global.asax的一些变化,很多人都遇到了这个问题。 这是global.asax的代码,与应用程序启动相关的部分。 protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); Application[“SystemUser”] = TUser.GetUserByIdentifier(“system”).UID; InitializeSolrInstances(); SearchIndexer.DoIndex(); StartRatingTimer(); SolrManager.RecalculateMostRequested(); } private static void InitializeSolrInstances() { SolrConfigurationManager.InitSolrConnection(Resources.ApplicationResources.SolrServiceURL + “/offer”); SolrConfigurationManager.InitSolrConnection(Resources.ApplicationResources.SolrServiceURL + “/savedquery”); SolrConfigurationManager.InitSolrConnection(Resources.ApplicationResources.SolrServiceURL + “/topproducts”); SolrConfigurationManager.InitSolrConnection(Resources.ApplicationResources.SolrServiceURL + “/topsellers”); SolrConfigurationManager.InitSolrConnection(Resources.ApplicationResources.SolrServiceURL + “/mostrequested”); SolrConfigurationManager.InitSolrConnection(Resources.ApplicationResources.SolrServiceURL + “/requestedquery”); } private void StartRatingTimer() { _LastRatingRenewedTime = DateTime.Now; DateTime CurrentTime = DateTime.Now; DateTime […]