问题标签 [solr.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2097 浏览

solr - 单值字段从查询返回为多值

我使用 Solr.NET 来索引数据,然后在本地 Solr 服务器(Solr.net v0.4,Solr v5.3.1)上查询它,并得到奇怪的异常。

我的索引记录是一个简单的类(在这里简化):

我通过调用 IsolrOperations.Add() 将其添加到索引中。我没有事先定义模式——它是由我输入的数据自动生成的。

在其他地方,我使用 IsolrReadOnlyOperations.Query() 查询这个索引,只询问 Id 字段。此查询显然返回结果,但因 ArgumentException 而崩溃:

“无法将值 'System.Collections.ArrayList' 转换为文档类型 My.Namespace.Record 的属性 'Id'”

这意味着当我将 Id 属性存储为 along时,它被检索为ArrayListof longs。如果我尝试检索其他字段,我会得到相同的错误 - 我存储一个字符串,但检索它们的集合。这会崩溃,因为它正在尝试创建 的实例Record,其中Id属性是单个long

通过 Web 界面浏览索引显示该属性确实是多值的——我看到的 JSON 包含所有属性的数组。同样,在模式浏览器中,我可以看到我的字段被定义为多值(对于属性和模式,而不是索引)。在索引的托管模式文件中,我可以看到我的字段被定义为strings(对于字符串字段)或tlongs数字字段。

  1. 为什么 Solr(或 Solr.Net)将我的单值字段索引为多值?
  2. 我可以在不手动编辑架构的情况下防止这种情况发生吗?也许使用字段属性?
  3. 我可以只检索多值属性的单个值吗?所以如果我无法修复架构,我可以简单地将数据检索到我的单值Record对象中吗?
0 投票
1 回答
374 浏览

c# - 评估 NumFound 时出现 OutOfMemory 异常

我在我们的项目中实现了 Solr.net 搜索,目前索引中有 660k 文档(大小约为 185 Mb)。

不幸的是,solr 不时抛出 OutOfMemory 异常:

搜索联系人时出错 System.OutOfMemoryException:引发了“System.OutOfMemoryException”类型的异常。在 System.Text.StringBuilder.ToString() 在 System.IO.StreamReader.ReadToEnd() 在 SolrNet.Impl.SolrConnection.ReadResponseToString(IHttpWebResponse response) 在 c:\prg\SolrNet\SolrNet\Impl\SolrConnection.cs:line 213在 SolrNet.Impl.SolrConnection.GetResponse(IHttpWebRequest request) 在 c:\prg\SolrNet\SolrNet\Impl\SolrConnection.cs: 第 199 行在 SolrNet.Impl.SolrConnection.Get(String relativeUrl, IEnumerable'1 参数) 在 c: \prg\SolrNet\SolrNet\Impl\SolrConnection.cs:第 149 行在 SolrNet.Impl.SolrQueryExecuter'1.Execute(ISolrQuery q, QueryOptions options) 在 c:\prg\SolrNet\SolrNet\Impl\SolrQueryExecuter.cs:第 672 行在 SolrNet.Impl.SolrBasicServer'1.Query(ISolrQuery 查询,

但是代码很简单:

有可能有成千上万的联系人要返回一些查询,但我认为NumFound应该只得到计数?那么,我该如何解决这个问题呢?提前感谢所有建议!

0 投票
1 回答
171 浏览

c#-4.0 - 在 Lucene.NET 中,如何重用使用 SOLR.NET 创建的索引数据

我编写了一个示例项目,其中我使用SOLR.NET(.NET Wrapper Java Based SOLR)创建了一个索引

我想删除Java的依赖。所以我正在尝试Lucene.NET

现在是否可以重用相同的索引数据(使用 SOLR.NET 和 SOLR 创建)并使用LUCENE.NET对该索引数据执行搜索/更新?

环境:VS2013、C#、.NET Framework 4.0、WinForms

0 投票
0 回答
18 浏览

elasticsearch - 从站点的特定部分搜索并返回(SOLR 和 SOLR.NET)

所有站点内容都已编入索引并可用于 Solr 搜索。站点级别的搜索按预期工作。我的网站看起来像这样。

*首页 *关于(在关于,有不同的部分亚洲,美洲等) *联系

如何搜索和返回特定于网站“关于”和“美国”部分的数据。在 Solr 中需要设置什么以及如何使用 SolrNet 检索数据?

0 投票
0 回答
19 浏览

sorting - 在solr中按子属性对父级排序

我有一个包含父子文档的索引,如下所示 -

我想要的只是根据评论名称或学生姓名或两者对书籍进行排序。有没有办法我可以在 solr 中做到这一点。我尝试了 solr 文档,它建议使用 !Parent 块查询,但我正在寻找一个详细说明它的示例。我知道我们可以在索引时实现这一点,将子项的值作为属性存储在父项中,但是我有很多子项作为父项,并且在父项上为每个子项设置一个属性是不可行的。所以寻找一种方法来使用排序功能在搜索时得到这个。

0 投票
1 回答
32 浏览

solr - Solr - 搜索具有多个子文档的父级

我有一个结构如下的 Solr 索引。

}

我如何搜索具有 Name_s 为“review1”的审阅者和 Name_s 为“学生”的学生的父母。

我尝试了如下所示的父块链查询,但似乎没有任何效果-

有没有办法我可以使用 q 运算符而不是 fq 参数来实现这一点?谢谢