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

📄 wildcardquerytest.cs

📁 DotLucentet,用来做撬
💻 CS
字号:
using System;
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 WildcardQueryTest
	{
		private Directory directory;

		private IndexSearcher searcher;

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

			IndexSingleFieldDocs(new Field[]
				{
					Field.Text("contents", "wild"),
					Field.Text("contents", "child"),
					Field.Text("contents", "mild"),
					Field.Text("contents", "mildew")
				});
			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 Wildcard()
		{
			Query query = new WildcardQuery(
				new Term("contents", "?ild*"));
			Hits hits = searcher.Search(query);
			Assert.AreEqual(3, hits.Length(), "child no match");
			Assert.AreEqual(hits.Score(0), hits.Score(1), 0.0, "score the same");
			Assert.AreEqual(hits.Score(1), hits.Score(2), 0.0, "score the same");
		}


		[Test, ExpectedException(typeof (ParseException))]
		public void TestQueryParserException()
		{
			Query query = QueryParser.Parse("?ild*", "contents", new WhitespaceAnalyzer());

		}

		[Test]
		public void TestQueryParserTailAsterrisk()
		{
			Query query = QueryParser.Parse("mild*", "contents", new WhitespaceAnalyzer());
			Assert.IsTrue(query is PrefixQuery);
			Assert.IsFalse(query is WildcardQuery);

		}

		[Test]
		public void TestQueryParser()
		{
			Query query = QueryParser.Parse("mi?d*", "contents", new WhitespaceAnalyzer());
			Hits hits = searcher.Search(query);
			Assert.AreEqual(2, hits.Length());
		}

	}
}

⌨️ 快捷键说明

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