草庐IT

c# - 避免在重建期间删除当前的 Lucene.NET 索引

我是Lucene.NET的新手,但我正在使用anopensourcetool专为SitecoreCMS打造它使用Lucene.NET从CMS中索引大量内容。我昨天确认,当我重建索引时,当前的索引文件会被清除干净,因此依赖索引的任何东西在大约30-60秒(完整索引重建的时间)内都没有数据。是否有最佳实践或方法让Lucene.NET在新索引完全重建之前不覆盖当前索引文件?我基本上认为我希望它写入新的临时索引文件,并且在重建完成后让这些文件覆盖当前索引。我正在谈论的例子:建立新索引(~30秒)索引有大约500个文档使用代码访问索引中的数据并在网站上显示重建索引(~30秒)现在读取数据索引的任

c# - 如何使用 Lucene.Net 执行 'contains' 搜索而不是 'starts with'

我们使用Lucene.NET在客户网站上实现全文搜索。搜索本身已经可以工作,但我们现在想要进行修改。目前,所有术语都附加了一个*,这会导致Lucene执行我将其归类为StartsWith搜索的操作。在未来,我们希望有一个搜索执行类似于Contains而不是StartsWith的搜索。我们使用Lucene.Net2.9.2.2标准分析器默认查询解析器示例:(Title:Orch*)匹配:Orchestra但是:(Title:rch*)不匹配:Orchestra我们希望第一个和第二个都匹配Orchestra。基本上我想要与这个问题中的问题完全相反,我不确定为什么Lucene对这个人执行Co

c# - 我如何实现标签搜索?与卢塞恩?

我没用过lucene。上次我问(很多个月前,也许一年前)人们建议使用lucene。如果我不应该使用lucene,我应该使用什么?作为我的例子,有一些元素被标记为这样苹果胡萝卜苹果胡萝卜苹果香蕉如果用户搜索苹果,我不关心1,2和4是否有任何偏好。但是我看到很多论坛都这样做,我讨厌的是当用户搜索苹果胡萝卜2和3有很高的结果而1很难找到,即使它更符合我的搜索。此外,我还希望能够搜索胡萝卜-苹果,这只会让我得到3。我不确定如果我搜索胡萝卜香蕉会发生什么,但无论如何只要标记有2和3结果的更多项目排名较低然后1当我搜索苹果胡萝卜时我会很高兴。lucene可以做到吗?我从哪里开始?我尝试查找它,当我

ES近实时刷新与refresh_interval参数设置相关问题

ES中的查询是近实时的,也就是说当数据添加到索引后并不能马上被查询到,等到索引刷新后才会被查询到,索引刷新相关字段为refresh_interval,默认为1s刷新一次。为何说ES的查询是近实时的呢?首先先了解下ES写入数据的过程:ES写入数据是先把数据写进Luence的**"memorybuffer"缓冲区**(同时也会把数据写一份到translogbuffer,进行定时同步到磁盘的持久性操作),Elasticsearch是基于Lucene实现的。ES基于底层这些包,然后进行了扩展,提供了更多的更丰富的查询语句,并且通过RESTfulAPI可以更方便地与底层交互。ES中的倒排索引、打分机制、

c# - 是否有将 Lucene.NET 集成到 ASP.NET MVC 应用程序中的任何建议?

我想知道是否有关于将基于Lucene.NET的搜索集成到ASP.NETMVCWeb应用程序的任何建议、最佳实践或重要提示?我在不同地方读过(或认为我读过)的内容包括:一个IndexWriter,多个IndexReader当索引更新时,重置/重新初始化IndexReader在开始之前我应该​​阅读其他有用的提示或资源吗?谢谢,基隆 最佳答案 以下是我的建议(排名不分先后):选择最合适的锁定机制。使用SetRAMBufferSizeMB减少写入索引时的磁盘I/O开销。不要过度使用SetMaxBufferedDocs属性。使用搜索命中(T

c# - Lucene 返回非正分数的文件

我们最近升级了我们使用的CMS,不得不从Lucene.netV2.3.1.301到V2.9.4.1我们在最初的解决方案中使用了CustomScoreQuery,它进行了内置查询无法实现的各种过滤。(地理、多日期范围等)自从从旧版本迁移到新版本的Lucene后,它开始返回文档,即使我们检查结果时它们的分数为0甚至负数下面是用于演示问题的重构代码示例publicLuceneTest(){Lucene.Net.Store.DirectoryluceneIndexDirectory=FSDirectory.Open(newSystem.IO.DirectoryInfo(@"C:\inetpub

javascript - 在 JavaScript 中通过 JSON 对象进行类似 Lucene 的搜索

我有一个相当大的JSON对象数组(它是一个具有艺术家、专辑等属性的音乐库,用loadonce=true提供一个jqgrid)我想通过整个集合实现类lucene(类谷歌)查询-但在本地,即在浏览器中,不与网络服务器通信。是否有任何JavaScript框架可以帮助我? 最佳答案 遍历您的记录,通过组合所有搜索来创建一次性索引单个字符串字段中的可用字段称为索引。将这些索引记录存储在数组中。根据索引对数组进行分区......就像一个数组中的所有a等等。使用javascript函数indexOf()根据索引匹配用户输入的查询并从分区数组中查找

javascript - 通过javascript全文搜索CD-Rom上的静态HTML文件

我将在CD-Rom上提供一组静态HTML页面;这些页面需要在没有任何互联网访问权限的情况下完全可见。我想为这些页面的内容提供全文搜索(类似Lucene),它应该可以从CD-Rom中“正常工作”,而无需在客户端计算机上安装软件。在javascript中实现搜索引擎将是完美的解决方案,但我很难找到任何看起来可靠/当前/流行的...?我确实找到了这些:+jsFind+js-search但这两个项目似乎都不活跃?除了javascript中的特定搜索引擎之外,另一个解决方案是能够从javascript访问本地Lucene索引:索引本身将使用Lucene构建并与HTML文件一起复制到CD-Rom。

php - 基于 PHP (CodeIgniter) 的工作板的良好搜索服务?

有谁知道任何基于第3方许可或开源搜索服务(如YahooBOSS)的内容索引和搜索服务?我正在CodeIgniter中创建一个小众职位公告板,我不希望使用PHP进行搜索。我希望该服务具有足够的可定制性,以支持精炼内容和基于位置的搜索。因此,真正封闭的工具可能不合适。 最佳答案 也许试试apachelucene:http://lucene.apache.org/java/docs/ 关于php-基于PHP(CodeIgniter)的工作板的良好搜索服务?,我们在StackOverflow上找

php - 在 lucene 中存储用户数据或查询 rdbms?

我正在与lucene作斗争,不确定如何做更好:我有用户的个人资料数据-其中一些(3-4个字段)存储在lucene中。但在查询结果上我还需要显示用户的年龄/姓名/等。我认为在lucene中保存所有这些字段(附加的,不参与搜索过程)是不合理的,但是查询rdmbs将花费一些时间,所以我的问题是如何做更好?谢谢。 最佳答案 使用lucene为所有个人资料字段编制索引可为最终用户提供更好的搜索体验,因为它将搜索所有字段并进行适当的排名。在RDBMS中,我不知道如何对多列和排名进行全文搜索。在这种情况下,我总是更喜欢Lucene。您还需要将索引