问题标签 [nhibernate.search]

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 投票
2 回答
486 浏览

c# - 是否可以结合 SOLR 和 NHibernate Search

我是 SOLR 的新手,但我知道它是建立在 lucene 之上的。我想知道是否可以使用现有的 NHibernate Search(显然直接与 Lucene 一起使用)来添加/更新 SOLR 中的项目?如果是这样,这是否被认为是一种不好的做法?

预先感谢,

J.P

0 投票
1 回答
224 浏览

fluent-nhibernate - 使用 Fluent NHibernate Search 从搜索中排除对象的最佳方法

我有一个带有布尔属性的类。

我想从搜索结果中排除具有错误值的实例。

使用 Fluent NHibernate Search 的最佳方法是什么?

0 投票
1 回答
2109 浏览

nhibernate - 使用 Nhibernate 急切加载树/层次结构

这不是一个问题,过去几天我一直在研究这个主题,并认为我想贡献一些东西来吸引我一直在阅读的许多不同的想法,并提出我的解决方案问题...

问题是在 Nhibernate 中急切加载 n 级子对象,并且 nHibernate 将不知道树的深度。我已经看到通过使用直接 sql 和 Union All 解决了这个问题,但不幸的是我无法让它工作,通常是因为 nhibernate 不知道你已经急切地加载了对象。因此,我查看了以下代码,以使用标准急切加载对象

这将急切加载 ID 1 的孩子,从这里您可以使用 In 语句一次急切加载多个实体。所以我只需要计算出属于这个层次结构的所有节点 id 并使用 In 语句急切地加载它。

因此,如果我为层次结构创建一个父表并且每个节点都有一个层次结构 ID,那么我可以使用这个 hql 获取该层次结构的所有节点 ID 的列表

并从这里急切地使用这棵树单独加载所有孩子

唯一的问题是您没有从层次结构父表中急切加载第一级节点,这可以正常完成..

就是这样,在三个 SQL 语句中,您已经将一个子对象急切地加载到 n 级。为了进一步优化,我使用多查询将两个主要查询链接在一起并同时发送两个语句。拉回id的语句需要独立执行才能拉回id。

可以在此处找到使用 MultiCriteria 进行预加载的更多详细信息。

http://nhforge.org/blogs/nhibernate/archive/2008/09/06/eager-loading-aggregate-with-many-child-collections.aspx

希望这对某人有所帮助

0 投票
1 回答
574 浏览

nhibernate - Lucene.Net 和 Nhibernate.Search:如何管理复杂的搜索?

我们有一个 SQL Server 数据库,其中包含由Lucene.netthrough索引的数百万条记录Nhibernate.Search。当我们为我们的类建立索引时,我们试图扩大范围,因为索引/检索的成本非常小。目标是在带有分页的网页上为用户提供全文搜索。

由于 SQL Server 在向其发送太多参数时会抱怨(默认为 2100 个参数),并且由于我们不想在每次达到限制时更改该参数(这很容易发生,我们文档中的某些术语非常常见但必须可搜索)我们决定在 Lucene 中处理从排序到分页的所有事情。它就像一个魅力。

然而,最近,特性蠕变给我们带来了一些问题,因为新查询不仅需要访问未编入索引的字段,还需要访问不应访问或无法访问的字段:计算字段、推荐列表等。 ..

既然我们已经将所有的分页和排序都放在了 Lucene.Net 中,而且 SQL Server 对它的参数很挑剔,那么我们如何才能做到既吃又吃呢?

我正在考虑首先进行 sql 查询计算,将元素减少到它们的 doc id,然后为 Lucene 提供一个带有所有可能 id 的巨大 OR 查询,让它正确选择可能的内容,但我担心查询大小

伪代码

显然,可以通过只允许某些文档 ID 作为查询的一部分来使 Lucene 过滤器工作,所以应该是可能的,但我真的没有在 Nhibernate.search 中看到这样做的方法

你知道我应该如何处理这个问题吗?是否可以通过向 SQL 询问 id 列表来过滤查询?是不是矫枉过正?还有其他解决方案吗?

0 投票
2 回答
315 浏览

nhibernate - 是否可以使用 nhibernate.search 和 nhibernate 3.0

伙计们,我还没有找到任何与 nh3 兼容的 nhibernate.search 程序集。好像还没有完成。我希望我错了。

0 投票
1 回答
675 浏览

nhibernate - NHibernate 搜索 Lucene.NET SearchFactory 为空

几个小时以来,我一直在努力解决以下问题。我尝试使用不同的 NHibernate/NHibernate.Search 程序集(3.0.0.4 / 2.1.2),它们都导致相同的错误。使用的 Lucene 版本是 2.9.2.2

所有这些都是从源代码编译的。NHibernate 设置为使用 NHibernate Search,配置通过 Fluent NHibernate。

到目前为止一切顺利,在 bin 文件夹(segments.gen 和segments_1 文件)的Index 目录中创建了一个索引。

创建配置后,我获取 NHibernate Session 并尝试索引某些内容:

这一切正常,直到 fts.PurgeAll 或 fts.Index 被击中,这给出了这个错误:

这个错误是从 NIBerate.Search.dll 引发的,看起来 SearchFactory 没有被初始化。应该创建 SearchFactory 的代码返回 null:

遇到了几种可能的解决方案,我需要使用 SearchFactory.Initialize 初始化 SearchFactory,但我的 (2.0 / 3.0) NHibernate.Search 程序集中不存在这种方法。

也抛出一个“空异常”(当然),上面是调用:

其中 searchFactory == null

有一个 SearchFactoryImpl

它返回一个 SearchFactoryImpl 实例,但不知道如何处理它......

也许我错过了什么?任何帮助深表感谢。

0 投票
1 回答
139 浏览

s#arp-architecture - S#arp 架构 + NHibernate.Search + DocumentId

我是 NHibernate.Search 的新手,遇到了一个需要帮助的问题。

我需要在我的 ID 字段中添加一个 [DocumentId] 属性,但是 Id 字段在 Entity 类中...我在 stackoverflow 上找到了一些代码,这些代码在我的 POCO 中完成了此操作:

但是当我UpdateModel()在控制器中运行该函数时,出现异常:

异常详细信息:System.Reflection.AmbiguousMatchException:找到不明确的匹配项。

我认为模型绑定器看到 2 个 Id 字段,但是我不确定解决这个问题的最佳方法。

保罗

0 投票
2 回答
562 浏览

nhibernate - NHibernate - 定义 where 条件

在我的应用程序中,用户可以定义搜索条件。他可以选择一列,设置一个运算符(等于、喜欢、大于、小于或等于等)并给出值。用户单击按钮后,应用程序应使用条件对数据库进行搜索。我使用 NHibernate,现在问我,使用 NHibernate 最有效的方法是什么。

我应该用它创建一个查询吗(Column=Name, Operator=Like, Value=%John%)

或者我应该用 HQL 做到这一点:

还是有更好的解决方案?

谢谢你的帮助。

最好的问候,托马斯

0 投票
2 回答
588 浏览

.net - NHibernate.Search + Lucene.NET 重复条目

当我从现有数据库构建初始索引时,Lucene 中的条目类型被索引为 <_hibernate_class:Castle.Proxies。MuestraProxy , DynamicProxyGenAssembly2>

但是,当使用 NHibernate 添加新实体时,它会被索引为 <_hibernate_class:RALVet.Model。Muestra , RALVet>} 在 Lucene 中创建重复条目,一个作为真实类,另一个作为其代理。

我在构建索引时尝试使用 NHibernateUtil.GetClass() 但它仍然返回代理。

这是构建初始索引的代码:

0 投票
1 回答
219 浏览

lucene.net - NHibernate.Search - 在运行时设置索引目录

我正在构建一个多租户应用程序,并希望为每个租户创建单独的索引,但是我似乎找不到在运行时为 NHibernate.Search 索引我的数据时设置索引目录的方法。

这似乎是使用我的配置文件中的索引目录,有没有办法解决这个问题?

谢谢,保罗