Tag: lucene

在ASP.NET MVC站点中正确构建Lucene.Net用法

我正在构建一个ASP.NET MVC站点,我计划使用Lucene.Net。 我已经设想了一种构建Lucene使用方法的方法,但不确定我的计划架构是否正常且高效。 我的计划: 在Global.asax中的Application_Start事件:我检查文件系统上是否存在索引 – 如果它不存在,我创建它并用从数据库中提取的文档填充它。 提交新内容时:我创建一个IndexWriter ,填写文档,写入索引,最后处理IndexWriter 。 IndexWriters没有被重用,因为我无法想象在ASP.NET MVC应用程序中这样做的好方法。 编辑内容时:我重复与提交新内容时相同的过程,但我先删除旧内容然后添加编辑。 当用户搜索内容时:我检查HttpRuntime.Cache以查看用户是否已在过去5分钟内搜索过该术语 – 如果有,我会返回这些结果; 否则,我创建一个IndexReader ,构建并运行一个查询,将结果放入HttpRuntime.Cache ,将它们返回给用户,最后处理IndexReader 。 再一次, IndexReaders不会被重用。 我的问题: 这是一个很好的结构 – 我怎样才能改进它? 我应该注意哪些性能/效率问题 ? 另外,是不是重复使用IndexReaders和IndexWriters一个巨大的代码味道?

C#Lucene获得所有索引

我正在使用Lucene处理Windows应用程序。 我想获取所有索引关键字并将其用作搜索字段上的自动建议的来源。 如何在Lucene中收到所有索引关键字? 我是C#的新手。 代码本身表示赞赏。 谢谢。

Lucene.net范围查询+突出显示

还有一个极端新手的另一个Lucene.net问题。 这一次,我发现使用包含范围和使用突出显示的查询时会遇到一个有趣的问题。 我是从内存中写的,所以请原谅任何语法错误。 我有一个假设的Lucene索引: ——————————————————— | date | text | ——————————————————— | 1317809124 | a crazy block of text | ——————————————————— | 1317809284 | programmers are crazy | ——————————————————— ** date is a unix timestamp …并且它们已经通过以下方式添加到索引中: Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document(); doc.Add(new Lucene.Net.Documents.Field(“text”, “some block of text”, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED, Lucene.Net.Documents.Field.TermVector.WITH_POSITIONS_OFFSETS)); doc.Add(new Lucene.Net.Documents.Field(“date”, “some unix timestamp”, […]

为什么filter不能在Lucene.Net中使用文本/字符串值?

我在Lucene.Net中制作了一个filter来限制搜索结果。 我遇到了一个非常奇怪的问题。 filter不使用文本值,但使用数字值。 例如: 如果我正在使用数字值进行过滤,如下所示。 它工作得很好。 String field = “id”; Filter LE= new QueryWrapperFilter(new TermQuery( new Term(field, “1234567”))); indexSearcher.Search(QueryMaker(searchString, searchfields), LE, coll); 但是,如果我给出一个包含Text的值 String field = “id”; Filter LE = new QueryWrapperFilter(new TermQuery(new Term(field, “ZZZOCB9X9Y”))); indexSearcher.Search(QueryMaker(searchString, searchfields), LE, coll); 它失败了。 结果不显示任何记录。 有人可以解释我的问题。 另外,我已经多次测试过这个说法。 我在一些论坛上看到,3以下Lucene版本中的术语查询可能会出现此问题。 但是,我已将版本更改为3.0.3,但错误仍然存​​在。 我非常需要我的程序中的filter才能工作。 否则我将不得不离开Lucene并找到别的东西。

我如何实现标签搜索? 与lucene?

我还没用过lucene。 上次我问(几个月前,也许一年),人们建议使用lucene。 如果我不应该使用lucene我应该使用什么? 例如,有些标记的项目是这样的 苹果胡萝卜 苹果 萝卜 苹果香蕉 如果一个用户搜索苹果我不在乎是否有1,2和4的任何偏好。但是我看到很多论坛这样做我讨厌当用户搜索苹果胡萝卜2和3有高结果而1很难找到甚至虽然它更贴近我的搜索。 此外,我希望能够搜索胡萝卜 – 苹果只能得到我3.我不知道如果我搜索胡萝卜香蕉会发生什么,但不管怎样,只要更多的项目标记为2和3的结果是较低的排名然后1我搜索苹果胡萝卜,我会很高兴。 lucene可以这样做吗? 我从哪里开始? 我尝试查找它,当我看到很多课程时,我会看到有关文档,网页的教程,但是当我喜欢标记某些内容时,没有人明白该做什么。 如果不是lucene我应该用什么标记?