Tag: lucene.net

Lucene – 搜索数值字段

好吧,我在过去的两个小时里搜索过这个结果只给出了提示,甚至没有一个完整的代码来帮助救援(如果他们看不到一些样品,小便会怎么学?) 我创建了一个像这样的索引: Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(Server.MapPath(“/data/channels/”))); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29); IndexWriter writer = new IndexWriter(directory, analyzer, true, Lucene.Net.Index.IndexWriter.MaxFieldLength.UNLIMITED); Document doc = new Document(); doc.Add(new Field(“ID”, “0”, Field.Store.YES, Field.Index.NO)); doc.Add(new Field(“parentID”, “0”, Field.Store.YES, Field.Index.NO)); doc.Add(new Field(“Title”, “Root”, Field.Store.YES, Field.Index.ANALYZED)); writer.AddDocument(doc); writer.Optimize(); writer.Close(); 现在,我想搜索字段ID其中值等于0 (以获得我在那里的单个记录)…. 但是,这样的简单搜索: Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(Server.MapPath(“/data/channels”))); Analyzer analyzer = new […]

Lucene.NET通过NHibernate.Search和POCO实体

无论如何在通过NHibernate.Search与Lucene.NET合作时保留真正的POCO实体? 似乎Lucene.NET(NHibernate.Search)映射只能在Entity类中使用Attributes。

使用通配符搜索进行搜索时,在文档中匹配术语

我正在寻找一种方法,使用Lucene中的waldcard搜索找到文档中匹配的术语。 我使用解释器试图找到条款,但这失败了。 相关代码的一部分如下。 ScoreDoc[] myHits = myTopDocs.scoreDocs; int hitsCount = myHits.Length; for (int myCounter = 0; myCounter < hitsCount; myCounter++) { Document doc = searcher.Doc(myHits[myCounter].doc); Explanation explanation = searcher.Explain(myQuery, myCounter); string myExplanation = explanation.ToString(); … 当我对say *进行搜索时,会找到文档并进入循环,但myExplanation包含NON-MATCH而没有其他信息。 我如何获得本文档中的术语? 非常感激任何的帮助。 问候

在Lucene.NET索引中存储关系数据

我目前正在尝试在大型数据库上实现基于Lucene.NET的搜索,并且我试图搜索基本上是关系数据的问题。 在高级别,我正在尝试搜索的数据被分组,每个项目属于1到3个组。 然后,我需要能够搜索组合组中的所有项目(EG:每个项目同时属于组A和组B)。 这些分组中的每一个都有我正在搜索的数据中存在的ID和描述,但描述可能是彼此的子串(EG:一组名为“Stuff”,另一组是“其他东西”),我不知道我想匹配具有我正在寻找的子字符串的类别。 我一直在考虑在没有这个过滤的情况下撤回数据然后过滤ID,但出于性能原因,我打算对从Lucene返回的数据进行分页。 我还考虑过将ID放在空格上并在场上进行文本搜索,但这似乎完全是黑客攻击…… 有谁知道如何在Lucene.NET中最好地处理这种搜索? (只是在有人说我使用错误的工具之前澄清一下,这只是包含全文搜索的更大filter的一部分。如果你仍然认为我使用了错误的工具,尽管我喜欢听听正确的是什么)

Lucene IndexWriter添加文档很慢

我写了一个小循环,在IndexWriter中添加了10,000个文档,并且它一直都是这样做的。 有没有其他方法可以索引大量文档? 我问,因为当它上线时,它必须加载15,000条记录。 另一个问题是,当重新启动Web应用程序时,如何防止必须再次加载所有记录? 编辑 这是我使用的代码; for (int t = 0; t < 10000; t++){ doc = new Document(); text = "Value" + t.toString(); doc.Add(new Field("Value", text, Field.Store.YES, Field.Index.TOKENIZED)); iwriter.AddDocument(doc); }; 编辑2 Analyzer analyzer = new StandardAnalyzer(); Directory directory = new RAMDirectory(); IndexWriter iwriter = new IndexWriter(directory, analyzer, true); iwriter.SetMaxFieldLength(25000); 然后是添加文档的代码; iwriter.Close();

有没有关于Lucene.NET的书籍

我在亚马逊上搜索过,找不到关于lucene.net的书。 你们有没有在lucene.net上看过一本像样的书呢?

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

我是Lucene.NET的新手,但我使用的是为Sitecore CMS构建的开源工具 ,它使用Lucene.NET来索引来自CMS的大量内容。 我昨天确认当我重建我的索引时,当前的索引文件擦除干净,所以任何依赖索引的东西都没有大约30-60秒的数据(完整索引重建的时间)。 在新索引完全重建之前,是否有最佳实践或方法使Lucene.NET不会覆盖当前索引文件? 我基本上以为我想要写入新的临时索引文件,当重建完成时,这些文件会覆盖当前索引。 我在说什么的例子: 建立新的指数(约30秒) 索引有大约500个文件 使用代码访问索引中的数据并在网站上显示 重建指数(~30秒) 现在读取数据索引的任何代码都不会返回任何内容,因为索引文件被覆盖了; 导致网站没有显示任何数据 重建完成:数据现在再次可用,数据返回网站 提前致谢

使用Lucene.net进行分页

我正在开发一个使用Asp.net 3.5和Lucene.Net的.Net应用程序我在一个asp.net数据网格中显示Lucene.Net给出的搜索结果。 我需要为这个aspx页面实现Paging(每页10条记录)。 如何使用Lucene.Net完成此操作?

我如何使用Lucene.Net索引PDF文件?

我正在寻找一些示例代码,演示如何使用Lucene.Net和C#索引PDF文档。 谷歌出现了几个,但没有一个,我觉得有帮助。

Lucene.Net模糊搜索速度

对不起,我希望得到Lucene经验丰富的人的帮助。 现在我们在我们的应用程序Lucene.Net 3.0.3中使用~2.500.000项目进行索引和搜索。 每个实体包含27个可搜索字段,以这种方式添加到索引:new Field(key,value,Field.Store.YES,Field.Index.ANALYZED)) 现在我们有两个搜索选项: 使用模糊搜索仅搜索4个字段 使用精确搜索按4-27个字段搜索 我们有一个搜索服务,每周自动搜索约53000人,如“Bob Huston”,“Sara Conor”,“Sujan Hong Uin Ho”等。 因此,我们在选项1中遇到慢速搜索速度, s an average 4-8 sec in searcher.Search and it搜索速度为s an average 4-8 sec in searcher.Search and it是我们的主要问题。 搜索示例代码: var index = FSDirectory.Open(indexPath); var searcher = new IndexSearcher(index, true); this.analyzer = new StandardAnalyzer(Version.LUCENE_30, new HashSet()) var queryParser = new MultiFieldQueryParser(Version.LUCENE_30, queryFields, […]