小编mja*_*jel的帖子

Solr faceting:JSON格式不一致

我的solr架构中有以下两个字段:

<field name="brand_id"     type="string" indexed="true" stored="true" />
<field name="category_id"  type="string" indexed="true" stored="true" />
Run Code Online (Sandbox Code Playgroud)

当我提出启用了facet的请求时(在brand_id上进行分面) http://example.com/solr/select?wt=json&facet=true&facet.mincount=1&facet.field=brand_id&q=*:*

faceting输出以对象表示法返回:

"facet_counts": {
    "facet_queries": { }
    "facet_fields": {
         "brand_id": [
            {"1350492":14},
            {"1350578":12},
            {"1350600":11},
            {"1350617":8}
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,使用'category_id'作为构面字段重复相同的请求会返回数组符号 http://example.com/solr/select?wt=json&facet=true&facet.mincount=1&facet.field=category_id&q=*:*

"facet_counts":{
    "facet_queries":{},
    "facet_fields":{
        "category_id":[
            "230",20,
            "259",13,
            "154",12,
            "249",11
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法强制对象符号格式化?我正在使用Solr 3.6

- 更新 -

使用XML格式返回正确的结果:

<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
    <lst name="brand_id">
        <int name="269115">136</int>
        <int name="269394">110</int>
    </lst>


    <lst name="category_id">
        <int name="1348814">228</int>
        <int name="1350591">218</int>
    </lst>
Run Code Online (Sandbox Code Playgroud)

lucene solr facet

13
推荐指数
1
解决办法
2897
查看次数

使用HTTPS时,jQuery.ajax不会发送正确的ajax标头

每当我创建一个jQuery.ajax请求时,它都可以在URL使用HTTP协议时正常工作.但是当我向HTTPs服务器发送相同的请求时,它会在没有标题[ HTTP_X_REQUESTED_WITH: XMLHttpRequest]的情况下发送.因此服务器无法知道这是一个AJAX请求!

我试过了:

  • 切换$ .ajax,$.post,$ .get
  • 强制使用标头 beforeSend
  • 设置 CrossDomain:true

注意:没有跨域问题,请求有效并处理,但不是AJAX.

当前URL为http但请求的URL位于同一域但使用HTTPS时,会发生此问题. http://example.com/home 将使用AJAX POST发布到

javascript ajax https jquery

9
推荐指数
2
解决办法
6460
查看次数

Solr:字段值的完全匹配

我正在尝试对存储的值(而不是查询值)执行精确匹配。

我的索引数据类似于:“香蕉共和国”

我需要以下查询来匹配:

  • 香蕉共和国的衬衫
  • 香蕉共和国物品
  • 东西香蕉共和国和其他东西

这些应该匹配:

  • 香蕉不是共和国
  • 香蕉是好水果
  • 智利共和国

我的场景实际上很简单,并且可以使用类似于以下的查询的 SQL 轻松实现:query_string LIKE '%stored_val%'但我无法配置分析器来执行它。我确信EdgeNGramFilter可以实现这一点,但是创建长度超过 30 个字符的 ngram 会非常昂贵。

我当前的实现是:在索引分析器中,使用solr.KeywordTokenizerFactory. 在查询分析器中,使用solr.ShingleFilterFactory(2-4 个标记)。使用分析工具时一切正常。但是使用查询 API,查询被转换为:

rawquerystring: "match_name:"banana republic"",
parsedquery_toString: "match_name:"(banana bananarepublic) republic""
Run Code Online (Sandbox Code Playgroud)

这与我存储的令牌“bananarepublic”不匹配

我的分析链如下所示:

  <fieldType name="singletoken" class="solr.TextField">
    <analyzer type="index">
      <charFilter class="solr.MappingCharFilterFactory" mapping="../../common-config/mapping-ISOLatin1Accent.txt"/> <!-- map accented letters to their ascii equivilants -->
      <tokenizer class="solr.KeywordTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory" />
      <filter class="solr.PatternReplaceFilterFactory" pattern="[^A-Za-z0-9&amp; ]" replacement=" "/>
      <filter class="solr.PatternReplaceFilterFactory" pattern="(^\s+|\s+$)" replacement=""/> <!-- …
Run Code Online (Sandbox Code Playgroud)

solr

5
推荐指数
1
解决办法
3797
查看次数

将AWS/Route53子域路由到ec2实例

我有一个在AWS 的 Route53中注册的域名,并且希望创建一个指向 EC2 实例的子域,该子域在重新启动计算机后仍保持不变(这种情况经常发生)

以前的设置:

  • EC2实例链接到静态弹性IP(例如1.1.1.1
  • subdomain.example.com是一个A指向的记录1.1.1.1
  • 问题:弹性 IP 地址耗尽(每个区域限制 10 个 ip)。

当前设置:

  • EC2 实例具有自动生成的公共 IP 和公共 DNS(例如2.2.2.2ec2-2-2-2-2.eu-west-1.compute.amazonaws.com
  • subdomain.example.com是一个CNAME指向的记录ec2-2-2-2-2.eu-west-1.compute.amazonaws.com
  • 问题:重新启动计算机时,会生成新的 IP/DNS 地址,并且路由被破坏!

还尝试过:

  • 创建自动缩放组并将实例添加到其中。
  • 为自动伸缩组创建负载均衡器。
  • 作为ALIAS路由subdomain.example.com到负载均衡器CNAME
  • 问题:复杂且难以维护。

所需设置

  • 一种将子域直接链接到实例的简单方法,无需耗尽 EIP 或创建负载均衡器。

amazon-ec2 amazon-web-services amazon-route53

5
推荐指数
1
解决办法
2176
查看次数

“标准”shebang 与 `-e`

所以我曾经用#!/bin/bash -e(调用bash,并在第一个错误时退出)来启动我的bash脚本

\n\n

现在我正在转向更便携的形式 #!/usr/bin/env bash但设置-e不起作用

\n\n
#!/usr/bin/env bash -e\necho 'hi'\n\n# output:\n>> /usr/bin/env: \xe2\x80\x98bash -e\xe2\x80\x99: No such file or directory\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何-e与便携式 Shebang 一起使用?

\n

unix bash

4
推荐指数
1
解决办法
1373
查看次数

ElasticSearch刷新缓存效果

在ElasticSearch中,是否调用RefreshFlush clear字段并过滤缓存?

我有一个写得很重的应用程序,运行刷新或刷新是否更好,或者有更好的方法吗?

caching elasticsearch

3
推荐指数
1
解决办法
1301
查看次数