作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有类似的文件
{id:1, name:foo, from: China}
{id:2, name:bar, from: USA}
{id:3, name:baz, from: Japan}
{id:4, name:foo, from: China}
然后我按 from
字段对这些文档进行分组。
And I want to get the top N country from which users come from.
我不知道如何按每个组的文档数量排序。或者有更好的方法来做到这一点。
最佳答案
我不认为使用 Lucene 是实现您想要的效果的最佳方式,但您可以迭代结果并收集 map 中每个国家/地区的计数:
final Map<String, Integer> country2count = new HashMap<String, Integer>();
for (final ScoreDoc hit : hits) {
final int docId = hit.doc;
if (!reader.isDeleted(docId)) {
// Get the document from docId
final Document document = searcher.doc(docId);
// Get the country
final String country = document.get("from");
if(country2count.containsKey(country)){
int prevCount = country2count.get(country);
country2count.put(country, ++prevCount);
}else{
country2count.put(country, 1);
}
}
}
我建议您不要使用索引,而是使用简单的日志,然后使用以下方法获取用户数量最多的国家/地区:
cat id_name_from.log | awk '{print $3}' |排序 -k 3 | uniq-c|排序-nrk 1
示例:日志文件保存为“id\t name\t from”:
1 foo China
2 foo Usa
3 bar China
4 foo China
5 foo China
6 foo Usa
7 bar China
8 foo China
9 foo Usa
脚本:
cat log | awk '{print $3}' | sort | uniq -c | sort -nrk 1
结果:
6 China
3 Usa
关于java - 卢塞恩 : how to sort by document count in group while doing grouping search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626607/
我目前正在将 Luajit 与 Lua 5.1 一起使用,并且正在尝试在 Lua C API 中注册一个名为“Wait”的函数。该函数的主要目的是暂停当前线程。 示例用法: print("Workin
我是一名优秀的程序员,十分优秀!