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

📄 booleanquerytest.cs

📁 DotLucentet,用来做撬
💻 CS
字号:
using System;
using dotLucene.inAction.Common;
using Lucene.Net.Analysis;
using Lucene.Net.Index;
using Lucene.Net.QueryParsers;
using Lucene.Net.Search;
using NUnit.Framework;

namespace dotLucene.inAction.BasicSearch
{
	public class BooleanQueryTest : LiaTestCase
	{
		[Test]
		public void And()
		{
			TermQuery searchingBooks =
				new TermQuery(new Term("subject", "junit"));

			RangeQuery currentBooks =
				new RangeQuery(new Term("pubmonth", "200301"),
				               new Term("pubmonth", "200312"),
				               true);

			BooleanQuery currentSearchingBooks = new BooleanQuery();
			currentSearchingBooks.Add(searchingBooks, true, false);
			currentSearchingBooks.Add(currentBooks, true, false);

			IndexSearcher searcher = new IndexSearcher(directory);
			Hits hits = searcher.Search(currentSearchingBooks);

			AssertHitsIncludeTitle(hits, "JUnit in Action");
		}

		[Test]
		public void Or()
		{
			TermQuery methodologyBooks = new TermQuery(
				new Term("category",
				         "/Computers/JUnit"));

			TermQuery easternPhilosophyBooks = new TermQuery(
				new Term("category",
				         "/Computers/Ant"));

			BooleanQuery enlightenmentBooks = new BooleanQuery();
			enlightenmentBooks.Add(methodologyBooks, false, false);
			enlightenmentBooks.Add(easternPhilosophyBooks, false, false);

			IndexSearcher searcher = new IndexSearcher(directory);
			Hits hits = searcher.Search(enlightenmentBooks);
			Console.Out.WriteLine("or = " + enlightenmentBooks);

			AssertHitsIncludeTitle(hits, "Java Development with Ant");
			AssertHitsIncludeTitle(hits, "JUnit in Action");
		}

		[Test]
		public void TestQueryParser()
		{
			Query query = QueryParser.Parse("pubmonth:[200301 TO 200312] AND junit", "subject", new SimpleAnalyzer());
			IndexSearcher searcher = new IndexSearcher(directory);
			Hits hits = searcher.Search(query);
			Assert.AreEqual(1, hits.Length());


			query = QueryParser.Parse("/Computers/JUnit OR /Computers/Ant", "category", new WhitespaceAnalyzer());
			hits = searcher.Search(query);
			Assert.AreEqual(2, hits.Length());
		}

		[Test]
		public void TestQueryParserDefaultAND()
		{
			QueryParser qp = new QueryParser("subject", new SimpleAnalyzer());
            qp.SetOperator(QueryParser.DEFAULT_OPERATOR_AND );
			Query query = qp.Parse("pubmonth:[200301 TO 200312] junit");
			IndexSearcher searcher = new IndexSearcher(directory);
			Hits hits = searcher.Search(query);
			Assert.AreEqual(1, hits.Length());

		}
	}
}

⌨️ 快捷键说明

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