SearchQuery

SearchQuery class

表示对象形式的搜索查询。

public abstract class SearchQuery

特性

姓名 描述
virtual ChildCount { get; } 获取子查询的数量。
virtual FieldName { get; } 获取字段名称。
virtual FirstChild { get; } 获取第一个子查询。
SearchOptions { get; set; } 获取或设置此搜索查询的搜索选项。
virtual SecondChild { get; } 获取第二个子查询。

方法

姓名 描述
static CreateAndQuery(SearchQuery, SearchQuery) 创建一个组合查询,它将只查找将为每个原始查询找到的文档。
static CreateDateRangeQuery(DateTime, DateTime) 创建日期范围查询。
static CreateFieldQuery(string, SearchQuery) 向指定查询添加字段。
static CreateNotQuery(SearchQuery) 创建一个倒排查询,该查询将根据原始查询找到的索引找到其余文档。
static CreateNumericRangeQuery(long, long) 创建一个数字范围查询。
static CreateOrQuery(SearchQuery, SearchQuery) 创建一个组合查询,该查询将查找至少为原始查询之一找到的所有文档。
static CreatePhraseSearchQuery(params SearchQuery[]) 创建短语搜索查询。
static CreateRegexQuery(string) 创建正则表达式查询。
static CreateRegexQuery(string, RegexOptions) 创建正则表达式查询。
static CreateWildcardQuery(int) 为短语搜索创建通配符。
static CreateWildcardQuery(int, int) 为短语搜索创建通配符。
static CreateWordPatternQuery(WordPattern) 创建单词模式查询。
static CreateWordQuery(string) 创建一个简单的单词查询。
abstract GetChild(int) 通过索引获取子查询。
abstract ToString() 返回一个String代表当前SearchQuery实例.

评论

了解更多

例子

该示例演示了该类的典型用法。

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";

Index index = new Index(indexFolder); // 在指定文件夹中创建索引
index.Add(documentsFolder); // 索引指定文件夹中的文档

// 创建日期范围搜索的子查询
SearchQuery subquery1 = SearchQuery.CreateDateRangeQuery(new DateTime(2011, 6, 17), new DateTime(2013, 1, 1));

// 创建遗漏字数从 0 到 2 的通配符子查询
SearchQuery subquery2 = SearchQuery.CreateWildcardQuery(0, 2);

// 创建简单词的子查询
SearchQuery subquery3 = SearchQuery.CreateWordQuery("birth");
subquery3.SearchOptions = new SearchOptions(); // 仅为子查询 3 设置搜索选项
subquery3.SearchOptions.FuzzySearch.Enabled = true;
subquery3.SearchOptions.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(1);

// 将子查询组合成一个查询
SearchQuery query = SearchQuery.CreatePhraseSearchQuery(subquery1, subquery2, subquery3);

// 创建搜索选项对象,增加已发现事件的容量
SearchOptions options = new SearchOptions(); // 整体搜索选项
options.MaxOccurrenceCountPerTerm = 1000000;
options.MaxTotalOccurrenceCount = 10000000;

SearchResult result = index.Search(query, options); // 搜索

也可以看看