本文整理汇总了C#中Lucene.Net.Search.WildcardQuery.SetRewriteMethod方法的典型用法代码示例。如果您正苦于以下问题:C# WildcardQuery.SetRewriteMethod方法的具体用法?C# WildcardQuery.SetRewriteMethod怎么用?C# WildcardQuery.SetRewriteMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lucene.Net.Search.WildcardQuery
的用法示例。
在下文中一共展示了WildcardQuery.SetRewriteMethod方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestTermWithoutWildcard
public virtual void TestTermWithoutWildcard()
{
Directory indexStore = GetIndexStore("field", new string[] { "nowildcard", "nowildcardx" });
IndexReader reader = DirectoryReader.Open(indexStore);
IndexSearcher searcher = NewSearcher(reader);
MultiTermQuery wq = new WildcardQuery(new Term("field", "nowildcard"));
AssertMatches(searcher, wq, 1);
wq.SetRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
wq.Boost = 0.1F;
Query q = searcher.Rewrite(wq);
Assert.IsTrue(q is TermQuery);
Assert.AreEqual(q.Boost, wq.Boost, 0);
wq.SetRewriteMethod(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE);
wq.Boost = 0.2F;
q = searcher.Rewrite(wq);
Assert.IsTrue(q is ConstantScoreQuery);
Assert.AreEqual(q.Boost, wq.Boost, 0.1);
wq.SetRewriteMethod(MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT);
wq.Boost = 0.3F;
q = searcher.Rewrite(wq);
Assert.IsTrue(q is ConstantScoreQuery);
Assert.AreEqual(q.Boost, wq.Boost, 0.1);
wq.SetRewriteMethod(MultiTermQuery.CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE);
wq.Boost = 0.4F;
q = searcher.Rewrite(wq);
Assert.IsTrue(q is ConstantScoreQuery);
Assert.AreEqual(q.Boost, wq.Boost, 0.1);
reader.Dispose();
indexStore.Dispose();
}
示例2: Build
public virtual Query Build(IQueryNode queryNode)
{
WildcardQueryNode wildcardNode = (WildcardQueryNode)queryNode;
WildcardQuery q = new WildcardQuery(new Term(wildcardNode.GetFieldAsString(),
wildcardNode.GetTextAsString()));
MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.GetTag(MultiTermRewriteMethodProcessor.TAG_ID);
if (method != null)
{
q.SetRewriteMethod(method);
}
return q;
}
示例3: TestEmptyTerm
public virtual void TestEmptyTerm()
{
Directory indexStore = GetIndexStore("field", new string[] { "nowildcard", "nowildcardx" });
IndexReader reader = DirectoryReader.Open(indexStore);
IndexSearcher searcher = NewSearcher(reader);
MultiTermQuery wq = new WildcardQuery(new Term("field", ""));
wq.SetRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
AssertMatches(searcher, wq, 0);
Query q = searcher.Rewrite(wq);
Assert.IsTrue(q is BooleanQuery);
Assert.AreEqual(0, ((BooleanQuery)q).Clauses.Length);
reader.Dispose();
indexStore.Dispose();
}
示例4: Cswcq
/// <summary>
/// macro for readability </summary>
public static Query Cswcq(Term wild)
{
WildcardQuery query = new WildcardQuery(wild);
query.SetRewriteMethod(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE);
return query;
}
示例5: TestDeMorgan
public virtual void TestDeMorgan()
{
Directory dir1 = NewDirectory();
RandomIndexWriter iw1 = new RandomIndexWriter(Random(), dir1, Similarity, TimeZone);
Document doc1 = new Document();
doc1.Add(NewTextField("field", "foo bar", Field.Store.NO));
iw1.AddDocument(doc1);
IndexReader reader1 = iw1.Reader;
iw1.Dispose();
Directory dir2 = NewDirectory();
RandomIndexWriter iw2 = new RandomIndexWriter(Random(), dir2, Similarity, TimeZone);
Document doc2 = new Document();
doc2.Add(NewTextField("field", "foo baz", Field.Store.NO));
iw2.AddDocument(doc2);
IndexReader reader2 = iw2.Reader;
iw2.Dispose();
BooleanQuery query = new BooleanQuery(); // Query: +foo -ba*
query.Add(new TermQuery(new Term("field", "foo")), BooleanClause.Occur.MUST);
WildcardQuery wildcardQuery = new WildcardQuery(new Term("field", "ba*"));
wildcardQuery.SetRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
query.Add(wildcardQuery, BooleanClause.Occur.MUST_NOT);
MultiReader multireader = new MultiReader(reader1, reader2);
IndexSearcher searcher = NewSearcher(multireader);
Assert.AreEqual(0, searcher.Search(query, 10).TotalHits);
Task foo = new Task(TestDeMorgan);
TaskScheduler es = TaskScheduler.Default;
searcher = new IndexSearcher(multireader, es);
if (VERBOSE)
{
Console.WriteLine("rewritten form: " + searcher.Rewrite(query));
}
Assert.AreEqual(0, searcher.Search(query, 10).TotalHits);
multireader.Dispose();
reader1.Dispose();
reader2.Dispose();
dir1.Dispose();
dir2.Dispose();
}
示例6: NewWildcardQuery
/// <summary>
/// Builds a new WildcardQuery instance
/// </summary>
/// <param name="t">wildcard term</param>
/// <returns>new WildcardQuery instance</returns>
protected internal virtual Query NewWildcardQuery(Term t)
{
WildcardQuery query = new WildcardQuery(t);
query.SetRewriteMethod(MultiTermRewriteMethod);
return query;
}