如何在SOLR搜索中进行算术查询

时间:2014-11-17 08:55:43

标签: solr lucene

现在,假设我要搜索长度低于3000(结束 - 开始)的所有SOLR文档。 使用SOLR查询语法以某种方式可行吗?如果不是,你是否熟悉一些能够做到这一点的开源?

我知道这不是SOLR“角色”(只有索引......)但我仍然想看看是否可能?

{
    "id": "XXX",          
    "Timing": [
      "Start: 1000 | End: 2000",
      "Start: 3000 | End: 5000",
}
{
    "id": "YYY",          
    "Timing": [
      "Start: 9000 | End: 10200",
      "Start: 13000 | End: 14000",
}

1 个答案:

答案 0 :(得分:0)

你如何定义长度?字符还是单词?你可以做到这两个,但我认为单词有点棘手。要做字符,只需使用https://wiki.apache.org/solr/UpdateRequestProcessor并填写文档的预定义长度字段。您可以对单词执行相同操作,但是您必须分析文档,获取单词计数,然后将其填入,这可能会在时间上花费很多,特别是如果您有大量更新流量。

编辑:要在solr中使用范围查询,只需查看lucene的查询语法:http://lucene.apache.org/core/4_10_2/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description,然后将查询字符串传递给qParser,或直接进入solr服务器:length: [*至3000]将为您提供长度低于3000的所有文档,例如