Tag: lucene.net

在Lucene.net 2.9.2中突出显示整个句子

目前我正在使用Lucene.net 2.9.2框架。 由于我的搜索,我希望获得带有突出显示的文本片段的结果页面(asp.net)。 我希望所选片段是一个完整的句子而不仅仅是几个单词。 例如,如果我有文字: Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Excepteur […]

如何使用Lucene.Net创建构面

我正在构建一个C#windows窗体应用程序,用于搜索数据库并显示结果。 我试图找到一个如何用Lucene创建方面的指南,但似乎我不能。 我正在创建索引,我能够搜索数据库,但我想为结果创建构面。 是否有任何指南或项目可供使用? 编辑这里是到目前为止我的项目的链接https://github.com/assignment128A-adopse/Assignment 任何帮助/建议都会有所帮助

Lucene和特殊人物

我使用Lucene.Net 2.0来索引数据库表中的某些字段。 其中一个字段是“名称”字段,允许使用特殊字符。 当我执行搜索时,它找不到包含带有特殊字符的术语的文档。 我将我的字段编入索引: Directory DALDirectory = FSDirectory.GetDirectory(@”C:\Indexes\Name”, false); Analyzer analyzer = new StandardAnalyzer(); IndexWriter indexWriter = new IndexWriter(DALDirectory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED); Document doc = new Document(); doc.Add(new Field(“Name”, “Test (Test)”, Field.Store.YES, Field.Index.TOKENIZED)); indexWriter.AddDocument(doc); indexWriter.Optimize(); indexWriter.Close(); 我搜索以下内容: value = value.Trim().ToLower(); value = QueryParser.Escape(value); Query searchQuery = new TermQuery(new Term(field, value)); Searcher searcher = new […]

使用lucene.net进行条件搜索

以下方式我用lucene.net进行搜索。 此例程搜索多个单词,对所有索引字段称为“标题”,“描述”,“URL”,“国家” 。 我需要知道如何给出像country =’UK’或country =’US’这样的条件 我希望多个单词应该像下面这样搜索,但我想在国家是英国时添加一个更多的条款。 所以请指导我在我的代码中添加什么。 if (!string.IsNullOrEmpty(multiWordPhrase)) { string[] fieldList = { “Title”, “Description”, “Url” }; List occurs = new List(); foreach (string field in fieldList) { occurs.Add(BooleanClause.Occur.SHOULD); } searcher = new IndexSearcher(_directory, false); Query qry = MultiFieldQueryParser.Parse(Version.LUCENE_29, multiWordPhrase, fieldList, occurs.ToArray(), new StandardAnalyzer(Version.LUCENE_29)); TopDocs topDocs = searcher.Search(qry, null, ((PageIndex + 1) * […]

如何在Lucene.net中执行语音和近似搜索

当我阅读Lucene.net文档时,我找到的唯一分析器是标准分析器。 我想确保我可以对我的索引进行语音或近似搜索。 我应该在Lucene.net上使用一些额外的库吗?

Lucene RangeQuery没有适当过滤

我正在使用RangeQuery来获取介于0到2之间的所有文档。当我执行查询时,Lucene还给了我大于2的文档。 我在这里想念的是什么? 这是我的代码: Term lowerTerm = new Term(“amount”, minAmount); Term upperTerm = new Term(“amount”, maxAmount); RangeQuery amountQuery = new RangeQuery(lowerTerm, upperTerm, true); finalQuery.Add(amountQuery, BooleanClause.Occur.MUST); 这是我的索引中的内容: doc.Add(new Field(“amount”, amount.ToString(), Field.Store.YES, Field.Index.UN_TOKENIZED, Field.TermVector.YES));

Lucene – 短语中的通配符

我目前正在尝试使用Lucene来搜索索引中填充的数据。 我可以通过将其括在括号中来匹配精确的短语(即“处理文档”),但不能让Lucene通过执行任何类型的“处理文档*”来找到该短语。 最明显的区别是最后的通配符。 我目前正在尝试使用Luke来查看和搜索索引。 (解析时,它会在短语末尾删除星号) 在数据周围添加引号似乎是主要的罪魁祸首,因为搜索文档*会起作用,但“文档*”不会 任何帮助将不胜感激

如何使用Lucene.Net执行“包含”搜索而不是“以’开头”

我们使用Lucene.NET在客户网站上实现全文搜索。 搜索本身已经有效但我们现在想要实现修改。 目前所有术语都附加了一个* ,这导致Lucene执行我将其归类为StartsWith搜索的内容。 在未来,我们希望有一个搜索执行像Contains而不是StartsWith 。 我们用 Lucene.Net 2.9.2.2 StandardAnalyzer 默认的QueryParser 样品: (Title:Orch*)匹配: Orchestra 但: (Title:rch*)不符合: Orchestra 我们希望第一个和第二个都能与Orchestra匹配。 基本上我想要与此问题中提到的完全相反,我不确定为什么这个人Lucene默认执行Contains而不是StartsWith : 为什么这个Lucene查询是“包含”而不是“startsWith”? 我们怎样才能实现这一目标? 我觉得它与分析仪有关,但我不确定。

Lucene.Net写/读同步

我可以将(使用IndexWriter )新文档写入索引,同时打开它来读取(使用IndexReader )吗? 或者我必须在写作前仔细阅读? 我是否可以在打开IndexWriter使用IndexWriter在索引中读取/搜索文档(使用IndexReader )? 或者我必须在阅读前结束写作吗? Lucene.Net线程安全与否? 或者我必须自己写吗?

有人可以向我解释这个GetCardinality方法在做什么吗?

我一直在寻找Lucene.NET的分面搜索,我在这里找到了一个很好的例子,它解释了相当多的事情,除了它完全忽略了检查位数组中项目基数的function。 任何人都可以告诉我它正在做什么吗? 我不理解的主要问题是为什么bitsSetArray按原样创建,它用于什么以及所有if语句如何在for循环中工作。 这可能是一个很大的问题,但我必须先了解它是如何工作的,甚至可以考虑在我自己的代码中使用它。 谢谢 public static int GetCardinality(BitArray bitArray) { var _bitsSetArray256 = new byte[] {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, […]