问题标签 [lucene.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.
lucene - 使用 RAM 目录
什么时候应该使用 Lucene 的 RAMDirectory?与其他存储机制相比,它有哪些优势?最后,我在哪里可以找到一个简单的代码示例?
lucene.net - Lucene.net 和 3.5
在针对 lucene.net 的 2.0 构建构建 3.5 应用程序时,是否有任何特殊注意事项需要注意?
我发现有几个人会发布他们的 lucene 项目文件,但不确定这是否是正确的方法。
c# - lucene .net 在哪里缓存搜索结果?
我试图弄清楚 Lucene 将缓存的查询结果存储在哪里,以及它是如何配置的——以及它缓存了多长时间。
这是针对 ASP.NET 3.5 解决方案的。
我遇到了这个问题:
如果我运行搜索并按特定产品字段对结果进行排序,它似乎在第一次使用每个搜索和排序组合时起作用。如果我然后进入并更改一些产品属性,重新索引并运行相同的搜索和排序,我会以与第一个结果相同的顺序返回产品。
例子
产品 A 被命名为: foo
产品 B 被命名为: bar
对于第一次搜索,按名称 desc 排序。这导致:
- 产品A
- 产品B
现在稍微混合一下数据:
- 将名称更改为:
产品 A 命名: bar
产品 B 命名: foo - 重新索引
- 验证索引是否包含这两个产品的更改。
- 搜索
结果:
- 产品A
- 产品B
由于我更改了名称的字母顺序,因此我期望:
- 产品B
- 产品A
所以我认为 Lucene 正在缓存搜索结果。(顺便说一句,这是一件非常好的事情。)我只需要知道在哪里/如何清除这些结果。我尝试删除索引文件并执行 IISreset 以清除内存,但似乎没有效果。所以我认为在 Lucene 用于缓存的索引之外还有另一组 Lucene 文件。
编辑
我刚刚发现您必须为要作为未标记化排序的字段创建索引。我将该字段标记为标记,因此排序不起作用。
lucene - 在 Lucene 中阅读文档
我在 Lucene 中的索引文档已经分配了多个城市......即。doc.Add(new Field("city", city1.Trim(), Field.Store.YES, Field.Index.TOKENIZED)); doc.Add(new Field("city", city2.Trim(), Field.Store.YES, Field.Index.TOKENIZED)); ETC
如何在执行 Lucene 搜索查询后遍历它们并读取值?
谢谢。
lucene - Lucene 分析器和点
我是 Lucene 的新手。
有什么办法可以让 Lucene 分析器不忽略字符串中的点?例如,如果我的搜索条件是:“ABCD”,Lucene 应该只给我搜索结果中包含“ABCD”而不是“ABCD”的那些文档......
c# - Lucene RangeQuery 没有正确过滤
我RangeQuery
用来获取数量在 0 到 2 之间的所有文档。当我执行查询时,Lucene 也会给我提供数量大于 2 的文档。我在这里想念什么?
这是我的代码:
这是我的索引中的内容:
lucene.net - Lucene 版本
有人听说过 Lucene 2.3.1.3 版吗?我们在生产项目中使用它。不过Lucene的稳定版是2.0.0.4版。
我应该推动将项目的依赖项移至版本 2.0.0.4 吗?
lucene - 城市名称查询
我是 Lucene 的新手,正在使用 Lucene 开发城市搜索 API。如果用户输入 san francisco 作为搜索输入,那么它应该只给出完全匹配的城市,而不是 San Jose/San Diego 等。
我应该如何在 Lucene 中索引城市名称?我需要使用哪个 Lucene 分析器和查询类?
performance - 对 Lucene 搜索结果进行分组并按类别计算频率
我正在使用 Lucene 开发商店搜索 API。
我需要在括号中显示每个城市、州组合的商店搜索结果及其频率......例如:
到目前为止,如果用户说“显示所有商店”,我的搜索结果平均会返回大约 7000 个 Lucene 文档。在这个用例中,我最终显示了大约 800 个独特的 City,State 记录,如上所示。
我正在重写HitCollector
类的Collect
方法并检索向量,如下所示:
然后我遍历这个集合并计算每个唯一城市、州组合的频率。
但这在性能上变得非常非常缓慢......有没有更好的方法来分组搜索结果和计算 Lucene 中的频率?一个代码片段会很有帮助
另外,请建议我是否可以使用任何其他技术/技巧来优化我的 Lucene 搜索代码....
谢谢阅读!
lucene - Lucene IndexSearcher 在重建时锁定索引导致 IOException
我从阅读可用文档中了解到,应该在搜索之间共享 IndexSearcher 实例,以获得最佳性能,并且必须创建一个新实例才能加载对索引所做的任何更改。这意味着在创建了指向同一目录的 IndexSearcher 实例之后,索引是可写的(使用 IndexWriter)。但是,这不是我在 Lucene.Net 实现中看到的行为。我正在使用 FSDirectory。RAMDirectory 不是一个可行的选择。IndexSearcher 锁定一个索引文件(在我的实现中它是 _1.cfs 文件),使索引在 IndexSearcher 实例的生命周期内不可更新。
这是一种已知的行为吗?在使用重建之前创建的 IndexSearcher 实例时,我不能从头开始重建索引吗?是否只能修改索引而不能重建它?
下面是我创建 IndexSearcher 实例的方法:
以下是我创建 IndexWriter 的方法:
我正在使用 Lucene.Net 2.0 版。
编辑:
升级到 Lucene.Net 2.1 (thx KenE) 并稍微修改我创建 IndexWriter 的方式解决了这个问题: