【问题标题】:Use Boolean Operator(mini-language) in where clause在 where 子句中使用布尔运算符(迷你语言)
【发布时间】:2021-09-06 20:58:43
【问题描述】:

我在我的 rails 应用中实现了 SearchKick。该应用程序拥有招聘应用程序可以拥有的所有搜索功能。过去 2 年我一直在开发这个应用程序,我的搜索查询写得很好,可以容纳聚合数据和一些条件子句。

现在我想使用 query_string 实现弹性搜索支持的“迷你语言”(布尔运算符)。

查询字符串支持的布尔运算符: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax

我想将query_String 与我现有的 SearchKick 查询一起使用。我知道我可以使用高级搜索,但为此我必须用 ElasticSearch 查询替换我当前的 SearchKick 查询。我不想这样做,因为这对我的项目来说是一个很大的变化,这个项目已经上线并且有 1000 多个用户。

我只是想以某种方式调整 seachKick 查询中的query_string,而不必用 ES 查询替换它。

这可能吗?

【问题讨论】:

    标签: ruby-on-rails elasticsearch searchkick


    【解决方案1】:

    我也有同样的问题。 但是,如果我正确理解了情况,Searchkick 维护人员决定不支持当前行为。

    他们在这里提到过:

    https://github.com/ankane/searchkick/issues/97

    这里:

    https://github.com/ankane/searchkick/issues/1494

    但是,一些解决方法可能对您有帮助。 你可以这样做:

    Product.search body: {query: {query_string: {query: 'white shoes and water washable', default_field: 'product_description'}}}
    
    

    我在这次对话中找到了它:

    https://github.com/ankane/searchkick/issues/1390#issuecomment-596657334

    或者,您可以将所需的字段组合成一个 search_data 方法。这可能更容易,但可能是更强大的解决方案。

    请参阅下面的参考资料:

    https://stackoverflow.com/a/51778715/2703618

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多