⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuzzyquerytest.cs

📁 DotLucentet,用来做撬
💻 CS
字号:
using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using Lucene.Net.Store;
using NUnit.Framework;

namespace dotLucene.inAction.BasicSearch
{
	[TestFixture]
	public class FuzzyQueryTest
	{
		private Directory directory;

		private IndexSearcher searcher;

		[SetUp]
		public void Init()
		{
			directory = new RAMDirectory();

			IndexSingleFieldDocs(new Field[]
				{
					Field.Text("contents", "fuzzy"),
					Field.Text("contents", "wuzzy")
				});
			searcher = new IndexSearcher(directory);
		}
		private void IndexSingleFieldDocs(Field[] fields)
		{
			IndexWriter writer = new IndexWriter(directory, new WhitespaceAnalyzer(), true);
			for (int i = 0; i < fields.Length; i++)
			{
				Document doc = new Document();
				doc.Add(fields[i]);
				writer.AddDocument(doc);
			}
			writer.Optimize();
			writer.Close();
		}

		[Test]
		public void Fuzzy()
		{
			Query query = new FuzzyQuery(new Term("contents", "wuzza"));
			Hits hits = searcher.Search(query);
			Assert.AreEqual( 2, hits.Length(),"both close enough");
			Assert.IsTrue(hits.Score(0) != hits.Score(1),"wuzzy closer than fuzzy");
			Assert.AreEqual("wuzzy", hits.Doc(0).Get("contents"),"wuzza bear");
		}

		[Test]
		public void TestQueryParser()
		{
			Query query =QueryParser.Parse("wuzza~","contents",new SimpleAnalyzer());
			Hits hits = searcher.Search(query);
			Assert.AreEqual( 2, hits.Length(),"both close enough");
			
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -