Solr范围查询,结果不正确问题

2019-03-27 01:21|来源: 网路

Solr 整合到项目中,当用price:[1 TO 1000] 进行范围查询时发现查询结果不对,发现solr中有些类型是不支持整型查询的

支持范围查询的类型

 <fieldType name="sInteger" class="solr.SortableIntField" omitNorms="true"/>
    
solr.SortableLongField

solr.SortableFloatField


不支持范围查询的类型

<fieldType name="integer" class="solr.IntField" omitNorms="true"/>
<fieldType name="sInteger" class="solr.SortableIntField" omitNorms="true"/>
<fieldType name="long" class="solr.LongField" omitNorms="true"/>
<fieldType name="float" class="solr.FloatField" omitNorms="true"/>

solr 所有类型

https://cwiki.apache.org/confluence/display/solr/Field+Types+Included+with+Solr



转自:http://my.oschina.net/smile622/blog/160919

相关问答

更多
  • 试试这个 - 我移动了你的一些逻辑来隔离LEFT JOIN SELECT COUNT(*) AS total FROM users JOIN questions ON questions.quest_level <= users.user_level LEFT OUTER JOIN answers ON questions.quest_id = answers.ans_question AND answers.ans_user = users.user_id WHERE answers. ...
  • 在第一个查询中,您将obj_id与子查询结果进行比较,当您应该in子查询结果中过滤obj_id in ,就像在测试中所做的那样: select distinct link_id from join_link_object where obj_id in (352304,352305,352306,352307,352308,354813); 这是它应该是什么: select distinct link_id from join_link_object where obj_id in (selec ...
  • 您的第一次加入缺少连接条件。 语法是: a JOIN b ON ... ,而不仅仅是a JOIN b 。 如果要连接三个表,则需要分两步执行此操作 (a JOIN b ON ...) JOIN c ON ... 要么 a JOIN (b JOIN c ON ...) ON ... 请注意,括号是可选的,这可能是错误消息显示“near Value”的原因 - SQL Server假定您要使用第二种语法并在语句末尾错过第二个ON 。 第一种语法通常更容易阅读。 就个人而言,我会按如下方式编写SQL语句: S ...
  • 如果您的字段是string类型,您可以尝试: /[1-6][0-9]. AB.*/ /[1-6][0-9]. AB.*/ (我在text字段上尝试了相同的正则表达式搜索,但它不匹配,很可能是因为标记化。) 我知道这是一个比你正在寻找的更松散的匹配,因为它将匹配第三个位置的任何字符,但Solr REST API不喜欢正则表达式中的%。 (我不确定SolrJ或其他客户端库是否可以处理它。)话虽如此,这种模式肯定会排除 77% DD, 89% FF 也许你需要的一切。 UPDATE 这是您问题的精确解决方案。 使 ...
  • 我想你应该删除(): ... ON COLUMNS FROM [Simple Cube] CELL ... I guess you should remove the () : ... ON COLUMNS FROM [Simple Cube] CELL ...
  • 删除第一个 order by COUNT([specimen id]) desc 或者这样做: select cDATEPART(mm, [DATE entered]) as Month, cast(COUNT([specimen id]) as varchar) +'|'+[practice name]+'|'+b.[mlis practice id]+'|'+[practice code]+'|'+[Requesting Physician]+'|'+c.salesrep+'|'+ cast( ...
  • 你的代码正在做((43-349))/ 43并给出结果 - 使用下面的代码...... SELECT top 20 y.Telno, t.Cycle+'-'+y.Cycle Cycle, ((t.CurBill - y.CurBill)/t.CurBill) Price FROM [ClubEatc].[dbo].[GetOnlineBills] y INNER JOIN [ClubEatc].[dbo].[GetOnlineBills] t ON y.Teln ...
  • 当我使用Solr-Cluster时,我试图获得结果数量 这是关键。 它与“行”无关,而与查询集群有关。 内部负载平衡可能会选择不同的分片,并且分片副本必须不具有相同的数据。 您可以尝试单独查询分片(并且还传递param distrib = false以避免分布式搜索并仅查询该分片)。 I have tried to get the number of results when I used Solr-Cluster This is the key. It has nothing to do with "ro ...
  • 响应返回fl参数中指定的字段。 只需在您的查询中添加fl=id,name即可。 The response returns the fields which are specified in the fl parameter. Just append fl=id,name to your query.
  • 您的时间戳文字格式错误。 你忘记了引号。 写 TO_TIMESTAMP('2013-03-26 23:59:59', 'YYYY-MM-DD HH24:MI:SS.FF') 甚至(因为您使用的是SQL标准时间戳文字格式) TIMESTAMP '2013-03-26 23:59:59' 代替 TO_TIMESTAMP(2013-03-26 23:59:59, 'YYYY-MM-DD HH24:MI:SS.FF') Your timestamp literal is malformed. You forg ...