统计solr multivalued 字段中数目

问题是这样的:已有若干multivalued 字段, 需要统计出 multivalued 字段中数目。

比如

*DOC1* 
<doc> 
<arr name="multi"> 
<str>1</str> 
</arr> 
</doc> 
----------------------
*DOC2* 
<doc> 
<arr name="multi"> 
<str>1</str> 
<str>3</str> 
<str>4</str> 
</arr> 
</doc> 
------------------------
*DOC3* 
<doc> 
<arr name="multi"> 
<str>1</str> 
<str>2</str> 
</arr> 
</doc>

-------------

如何可以查询出 multi 字段中只有1个值的文档?或者2个值的文档?

这个问题,google了一下,至于百度你懂的(搜不出有用的信息的)

根据若干人提出的总结,是在update的时候(定制一下UpdateProccessor, 内部统计 Item size),或者DIH的时候自己统计出字段的Item的个数。

然后查询这个字段。

具体外文link参见http://lucene.472066.n3.nabble.com/Query-on-multi-valued-field-td3209343.html

时间: 2024-10-11 10:54:09

统计solr multivalued 字段中数目的相关文章

【Transact-SQL】统计某字段中的值第一次出现后的2小时内出现的次数

原文:[Transact-SQL]统计某字段中的值第一次出现后的2小时内出现的次数 table1 name createdate a 2011-03-01 10:00:00 a 2011-03-01 11:00:00 a 2011-03-01 14:00:00 b 2011-03-01 13:00:00 b 2011-03-01 13:20:00 b 2011-03-01 14:00:00 查询结果为 name createdate count a 2011-03-01 10:00:00 2 a

Solr在结果中返回函数值

假设你有一个服务,你的用户可以搜索不同的公司,用户输入一个简单的关键字,可以返回匹配关键字的公司,但是有一天,用户要求返回的公司列表中可以显示公司跟用户的距离,这是该怎么做呢? 1.假设我们在 schema.xml 中定义了如下索引结构: <field name="id" type="string" indexed="true" stored="true" required="true" multiV

mysql统计一张表中条目个数的方法

统计一张表中条目的个通常的SQL语句是: select count(*) from tableName; #or select count(1) from tableName; #or 统计一个列项,如ID select count(ID) 另外,可通过使用information_schema统计个数 MySQL中有一个名为 information_schema 的数据库,在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名

oracle截取字段中的部分字符串

使用Oracle中Instr()和substr()函数: 在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 其语法为: instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 其中sourceString代表源字符串: destString代表想聪源字符串中查找的子串: start代表查找的开始位置,该参数可选的,默认为1: ap

查询出menupath字段中 出现 “- &quot;(横杆)大于3次的 记录

表明为productclass    我想查询出menupath字段中 出现 “- "(横杆)大于3次的 记录 答:1  select from productclass  where menupath  REGEXP '[[:digit:]]+-[[:digit:]]+-[[:digit:]]+-'  这样就可以 不过不建议用正则查询出menupath字段中 出现 “- "(横杆)大于3次的 记录 2 select * from productclass   where length

一个表中的某字段中所有的数据,复制到另一个表中

项目要求,织梦被黑了,又不太会修复织梦的漏洞.决定换一个自己开发的后台吧!问题来了,织梦中的文章数据要全部拿出来,导入到新的后台中. 因为,现有后台的数据表跟织梦的表的结构完全不一样,再加上织梦用于保存文章是用了,dede_addonarticle,dede_archives,这两个表.现在是要将两个表中有用的字段的数据 复制到一个新的表中的一个字段内. 第一步,同步他们的主键,dede_addonarticle的主键是aid,dede_archives的主键是id 1,一张写好了结构的,没有数

顺序统计:寻找序列中第k小的数

最直观的解法,排序之后取下标为k的值即可. 但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值). 如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列里面继续寻找第(k-支点下标)小的值. c#实现算法如下: public class FindSpecialOrderElement<T> where T : IComparable<T&

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE(&#39;{0}&#39;,&#39;YYYY-MM-DD&#39;))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in

MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法

首先我们建立一张带有逗号分隔的字符串. CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR(20) NOT NULL,pnum VARCHAR(50) NOT NULL); 然后插入带有逗号分隔的测试数据 INSERT INTO test(pname,pnum) VALUES('产品1','1,2,4'); INSERT INTO test(pname,pnum) VALUES('产