/**
* 搜索
*/
@Test
public void search() throws Exception
{
String queryString = "笑话";
// 把要搜索的文本解析成Query
String[] fields = {"name", "content"};
QueryParser queryParser = new MultiFieldQueryParser(fields, analyzer);
Query query = queryParser.parse(queryString);
// 进行查询
IndexSearcher indexSearcher = new IndexSearcher(indexPath);
Filter filter = null;
//
//Sort sort = new Sort(new SortField[]{new SortField("path")}); //升序
Sort sort = new Sort(new SortField[]{new SortField("path", true)}); // 降序
// 相当于一个List集合
TopDocs topDocs = indexSearcher.search(query, filter, 10000,sort);
System.out.println("总共有[" + topDocs.totalHits + "]条匹配结果");
// 打印结果
for (ScoreDoc scoreDoc : topDocs.scoreDocs)
{
int docSn = scoreDoc.doc;// 文档内部编号
Document doc = indexSearcher.doc(docSn); // 根据编号取出相应的文档
File2DocumentUtils.printDocumentInfo(doc);
}
System.out.println("总共有[" + topDocs.totalHits + "]条匹配结果");
}
分享到:
相关推荐
Lucene 提供了多种排序方式,包括升序和降序排序。可以使用 Sort 对象来指定排序字段和排序方式。 例如,下面的代码演示如何使用 Lucene 对搜索结果进行排序: ```csharp Sort sort = new Sort(new SortField(...
1. **排序基础**:首先,我们需要了解在Lucene中,排序是通过`Sort`类实现的,它可以按照多个字段进行排序,并且可以设定升序或降序。 2. **相关性排序**:默认情况下,Lucene使用TF-IDF算法计算文档的相关性分数,...
我们可以通过创建`SortField`对象来指定排序依据的字段和排序方式(升序或降序)。 例如,如果你有一个包含产品信息的索引,并希望按照价格进行排序,你可以这样做: ```java SortField priceField = new ...
`MySortComparatorSource.java`可能是用户自定义的排序比较器源,它可以实现特定的排序逻辑,比如根据某个字段的值进行升序或降序排序,或者结合多个字段进行复合排序。 结合以上文件,我们可以看到Lucene-2.0的...
评分通常基于TF-IDF算法,而字段排序则允许用户根据特定字段的值进行升序或降序排列。 高亮显示则是为了提高用户体验,它可以在搜索结果中突出显示匹配的关键词。Lucene的Highlighter类可以做到这一点,它使用...
你可以设置`SortField`来指定一个或多个字段进行排序,如`SortField(int, SortField.Type, boolean ascending)`,其中`fieldName`是字段名,`Type`是排序类型(如整型、浮点型等),`ascending`表示升序还是降序。...
5.3.1. 按照文档的得分降序排序 15 5.3.2. 按文档的内部ID升序排序 15 5.3.3. 按照一个Field来排序 15 5.3.4. 按照多个Field来排序 15 5.3.5. 改变SortField中的Locale信息 15 6. 过滤器 16 7. 分析器Analysis 16 ...
排序可以通过指定排序字段和排序方式(升序或降序)来进行。此外,还可以通过自定义Comparator来实现更复杂的排序逻辑。 #### 过滤 过滤(Filtering)是索引检索过程中的一项重要功能,用于进一步筛选搜索结果。与...
排序可以基于特定的标准,比如按用户名或注册时间升序或降序排列。 在描述中提到的“集合排序编程”,意味着在处理用户注册信息时,可能需要对这些信息进行某种形式的排序,例如在显示所有用户或执行某些分析时。这...
- 查询结果可以按照指定字段进行升序或降序排序。 - 排序可以增强用户体验,帮助用户快速找到所需的信息。 #### 七、高亮显示(Highlighting) - Solr 支持对查询结果中的匹配文本进行高亮显示,便于用户快速...
- **结果排序(Sorting)**: 用户可以通过指定 `sort` 参数来改变搜索结果的排序方式,例如按照某个字段的值进行升序或降序排序。 **4. 高级特性** - **分面搜索(Faceting)**: 分面搜索允许用户在搜索结果中查看...
- **排序**:支持按照字段进行升序或降序排序。 ### 高手进阶篇 #### 1. 分布式架构 - **节点(Node)**:构成Elasticsearch集群的基本单元,每个节点可以运行在一台独立的服务器上。 - **主节点(Master Node)**:...
同时,Solr还提供了排序功能,允许用户按价格升序或降序排列搜索结果。这通常通过“sort”参数实现,如“price asc”或“price desc”。 四、分页 在大量商品数据中,分页是必不可少的。Solr的“start”和“rows”...
排序可以通过` SortBuilders `构建,可以根据字段值进行升序或降序排列。 ### 高级特性 除了基础操作,Elasticsearch还提供许多高级特性,如聚合分析(Aggregations)用于统计分析,脚本字段(Script Fields)用于...
- **sort**:定义排序规则,例如 `sort=inStock desc,price asc` 表示按 `inStock` 字段降序排列,然后按 `price` 字段升序排列。 - **wt**:指定输出格式,例如 XML、JSON、PHP 等。 ##### 4.2 不常用查询参数 - *...
- **Sort(排序条件)**:设定排序依据,可以是升序或降序,多个条件用逗号分隔。 - **start, rows(分页处理)**:类似SQL的OFFSET和LIMIT,控制返回结果的数量和起始位置。 - **Fl(返回结果中的域列表)**:...