good day friends我面临一个问题,因为我需要在solr中匹配以下查询
SELECT entidad, municipio, count(*) as total,
sum(case when ip like '10.%' then 1 else 0 end) as internos,
sum(case when ip not like '10.%' then 1 else 0 end) as externos
FROM bitacora.actividad a
where sistema = 'RGNPMarcas'
AND fecha >= '2021/07/16' and fecha <= '2021/07/31'
AND parametros like 'PDF'
and parametros like 'EGV'
and entidad = '01'
GROUP BY entidad, municipio
ORDER BY entidad, municipio
我一直在研究solr中的刻面,我来做如下计算,但事实是我不知道如何缓解这种情况。
我的模式如下所示:
<field name="tabla" type="string" indexed="true" stored="false" multiValued="false"/>
<field name="entidad" type="string" indexed="true" stored="true" default="" multiValued="false"/>
<field name="municipio" type="string" indexed="true" stored="true" default="" multiValued="false"/>
<field name="ip" type="text_general" indexed="true" stored="true" default="" multiValued="false"/>
<field name="fecha" type="pdate" indexed="true" stored="true" multiValued="false" default=""/>
<field name="parametros" type="text_general" indexed="true" stored="true" default="" multiValued="false"/>
<field name="total" type="pint" uninvertible="true" indexed="true" stored="true"/>
<field name="internos" type="pint" uninvertible="true" indexed="true" stored="true"/>
<field name="externos" type="pint" uninvertible="true" indexed="true" stored="true"/>
正如你所看到的,我已经有了基础和索引字段,我需要的是你在这些solr问题上的经验,或者有人可以指导我,请!
1条答案
按热度按时间q3qa4bjr1#
如果您可以有一个名为“ip_type”的字段,内容为“internos”或“externos”,具体取决于天气,ip是否以“10”开头,那么您的查询将具有您在“where”之后编写的所有条件(例如“sistema=‘rgnpmarcas’”),而facet pivot将有3个字段:“entidad、市政、ip_type”。
现在,为了获得“ip_type”列,您可以更改索引数据的方式(更改输入),或者使用模式替换字符过滤器工厂(https://solr.apache.org/guide/7_1/charfilterfactories.html#solr-patternreplacecharfilterfactory)