当前位置: 首页 > 编程语言 > C#

Lucene.net字段包含多个值和人去搜索分享

时间:2023-04-10 13:44:46 C#

Lucene.net字段包含多个值和人去搜索谁都知道搜索一个字段包含多个值的最好方法是什么?字符串标签字符串="";foreach(vartagintags){tagString=tagString+=":"+tag;}doc.Field(newField("Tags",tagString,Field.Store.YES,Field.Index.Analyzed);假设我想搜索所有标有“csharp”的文档,谁会做得最好?我想什么你正在寻找的是将具有相同名称的多个字段添加到单个文档。你所做的是创建一个文档并向其添加多个标记字段。以上是C#学习教程:Lucene.net字段包含多个值和所有被搜索人分享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——RAMDirectoryramDir=newRAMDirectory();IndexWriterwriter=newIndexWriter(ramDir,newStandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));文件doc=newDocument();字段标签=空;string[]articleTags=newstring[]{"C#","WPF","Lucene"};foreach(stringtaginarticleTags){//多次添加同名字段到同一个文档tags=newField("tags",tag,Field.Store.YES,Field.Index.NOT_ANALYZED);doc.Add(标签);}writer.AddDocument(doc);作者.Commit();//搜索IndexReaderreader=writer.GetReader();IndexSearchersearcher=newIndexSearcher(阅读器);//使用将标签字段视为关键字的分析器(未分析)PerFieldAnalyzerWrapperaw=newPerFieldAnalyzerWrapper(newStandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));aw.AddAnalyzer("tags",newKeyword(Keyword)Analyzer);QueryParserqp=newQueryParser(Lucene.Net.Util.Version.LUCENE_29,"标签",aw);查询q=qp.Parse("+WPF+Lucene");TopDocs文档=searcher.Search(q,null,100);Console.WriteLine(docs.totalHits);//1命中q=qp.Parse("+WCF+Lucene");docs=searcher.Search(q,null,100);Console.WriteLine(docs.totalHits);//0打此文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: