小编Era*_* H.的帖子

Solr - {!ex}在构面查询上

背景

我正在尝试将两个功能组合起来,这些功能可以单独运行,但却无法让它们协同工作.

*1)正如在solr wiki上记录的那样,我可以标记特定的fq然后将其排除在我的facet.field上.即使选择一个值,这将使我的方面的计数保持不变,如下所示:

fq={!tag=pt}price:100&facet=true&facet.field={!ex=pt}price
Run Code Online (Sandbox Code Playgroud)

*2)我想使用facet.query如下:

facet=true&facet.query=price:[0 TO 100]&facet.query=price:[100 TO *]
Run Code Online (Sandbox Code Playgroud)

所以我想结合*1和*2,这是我尝试的:

fq={!tag=pt}price:[0 to 100]&facet=true&facet.query={!ex=pt}price:[0 TO 100]&facet.query={!ex=pt}price:[100 TO *]
Run Code Online (Sandbox Code Playgroud)

实际发生的是我从Solr收到的回复:

<lst name="facet_queries">
    <int name="{!ex=pt}price:[0 TO 100]">8</int>
    <int name="{!ex=pt}price:[100 TO *]">19</int>
</lst>
Run Code Online (Sandbox Code Playgroud)

我的问题是:

为什么名称的{!ex = pt}部分?这搞砸了我的一些逻辑.也许我误用了它,如果是的话,那么正确的方法是什么?

更多信息

我期待的是:(如果运行*2没有*1,我收到的相同)

<lst name="facet_queries">
    <int name="price:[0 TO 100]">8</int>
    <int name="price:[100 TO *]">19</int>
</lst>
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为如果我正在运行*1这就是我在facet_fields中收到的内容:

<lst name="facet_fields">
    <lst name="price">
        <int name="80">8</int>
        <int name="150">19</int>
    </lst>
</lst>
Run Code Online (Sandbox Code Playgroud)

它没有说name ="{!ex = pt}价格"

lucene solr

7
推荐指数
1
解决办法
6282
查看次数

elasticsearch-painless - 操纵日期

我试图在elasticsearch的脚本语言中操纵日期painless.具体来说,我试图增加4小时,即14,400秒.

{
  "script_fields": {
    "new_date_field": {
      "script": {
        "inline": "doc['date_field'] + 14400"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这引发了 Cannot apply [+] operation to types [org.elasticsearch.index.fielddata.ScriptDocValues.Longs] and [java.lang.Integer].

谢谢

elasticsearch elasticsearch-painless

6
推荐指数
1
解决办法
8775
查看次数