当前位置: 首页 > 知识库问答 >
问题:

搜索等于,包含,全文,小于,大于弹性

郎星汉
2023-03-14

我正在尝试对驻留在elastic中的数据执行4个操作。精确匹配(等于),包含,小于,大于。elastic中有两个选项,即query和filter,据我所知,这两个选项的作用相同,但query计算的分数与数据条件值关系最匹配。

我想做的是简单的过滤或查询(我很困惑,他们网站上提到的方式)

  1. 精确匹配,如name=Arjunage=29电子邮件=abc@asd.com
  2. 包含类似name ContainsAr或email Containsgmail的内容。com
  3. 大于like年龄

到目前为止,我一直在使用这种格式(坦率地说,我没有时间进行研究和实施)

{{ \"query\" : {{ \"filtered\" : {{ \"filter\" : {{ \"bool\" : {{ {{\"match\" : {\"" name "\" : \"" Arjun "\"} }}  }} }} }} }} }}

以上格式包含

{{ \"query\" : {{ \"filtered\" : {{ \"filter\" : {{ \"bool\" : {{ {\"range\": {\"" age "\": {\"" + gt/lt+ "\": \"" 29 "\"} } } }} }} }} }} }}

以上格式表示大于或小于

我使用bool表达式根据这个URL通过过滤器进行组合https://www.elastic.co/guide/en/elasticsearch/guide/current/_most_important_queries_and_filters.html

根据上面的链接,我们可以使用bool来组合查询,并根据示例中指定的{code>{“bool”:{“must”:{“match”:{“title”:“how to make Millennium”},“must_not”:{“match”:{“tag”:“spam”},“should”:[{“match”:{“tag started”},{“range”:{“date date”{“gte”:“2014-01-01”}}}}

我可以在没有过滤的情况下写同样的东西吗?

现在我想在我的(凌乱的)代码中实现equals,我觉得它也不是很好的代码。

请帮帮我


共有1个答案

沈德寿
2023-03-14

使用如下查询:

{
 "query": {
  "bool": {
     "must": [
        {
           "term": {
              "name": "Arjun"
           }
        },
        {
           "query_string": {
              "default_field": "name",
              "query": "Ar*"
           }
        },
        {
           "range": {
              "age": {
                 "from": 10,
                 "to": 20
              }
           }
        }
       ]
      }
     }
   }
 类似资料:
  • 我目前正在Codecademy上学习JavaScript,我遇到了一些问题。我在一个叫做“建造石头,布,剪刀”的部分,有一个部分有一个条件,如果数学。random()大于0.33小于0.66,计算机将选择纸张。我的问题是,如何建立一个if条件,即某个东西大于X,但同时小于Y?

  • 我试图从弹性搜索集群中获取数据。索引名称:testIndex类型:testType主机:localhost端口:8080 我想使用弹性搜索5.4版本,使用RestClient,我想使用多重匹配查询获取数据。 示例查询如下所示。 最好的方法是什么?我是否可以使用QueryBuilder构建查询并将其用于rest客户端。

  • 今天我注意到这个node.js代码: 给出输出 这很奇怪;如果某物不等于0或大于0,那么它为什么大于或等于0呢?发生什么事了?

  • 问题内容: 我在PostgreSQL中有一个名为的关系,该关系包含2个字段:和,我想找到具有最高值的产品。据我所知,有两种方法可以做到: 或者 他们的执行速度有什么不同吗? 问题答案: 如果有任何行,第一个查询将失败(如Gordon所示)。 仅当所有行都具有时,第二个查询才会失败。因此,它在大多数情况下应该是可用的。(而且速度更快。) 如果在 Postgres 12或更早版本中 需要NULL安全查

  • 我有一个用电子和节点js编写的应用程序,我正在尝试运行。它使用模块端口扫描器来检查特定范围内的打开端口: 但是,我收到了这个错误: 即使我的范围显然小于65536,大于0。 在线查看,它似乎是节点v6中的错误(我有v6.5.0)。我是nodejs的新手,非常感谢有关如何解决此问题的任何帮助。谢谢。

  • 我正在开发JSF项目并将Elastic Search与本机JavaApi(不是Jest)一起使用。我在elasticsearch索引映射中为高级全文搜索定义了分析器和nGram过滤器。如何使用java api进行此查询定义?