gpt4 book ai didi

angularjs - 使用存储在Angular变量中的URI查询来查询Elasticsearch

转载 作者:行者123 更新时间:2023-12-03 01:58:39 24 4
gpt4 key购买 nike

我正在使用Elastic Search构建搜索应用程序。我打算使用Angular使用Angular的$ http.get函数和 Elasticsearch URL查询将查询发送到应用程序。因此,要获取所有字段userID = 1的记录,我将查询:

将 Angular $ http.get变量设置为:

elasticsearch:9200/application/_search?q=userID:1

这很好,但是当我想在同一查询中包含其他Bool搜索时,事情变得尴尬。

因此,如果我要查询其中userID = 1 AND userName = person且不包含单词“hello”的所有记录,则将Angular $ http.get构建为:
elasticsearch:9200/application/_search?q=!Content:hello&userID:1&userName:person&default_operator=AND

但这不会返回所需的输出。

我认为这是第一个表达式为NOT搜索的问题,这似乎将整个查询设置为NOT查询,而不是(NOT Content hello)AND(userID = 1)AND(username = person)想要找到。

关于使用URL查询的Elasticsearch的文档非常有限,我找不到有关如何建立这种搜索的任何信息。

我应该使用来自Elasticsearch Java客户端的适当DSL,而不使用URL查询吗?

最佳答案

试试这个:

_search?q=!Content:hello AND userID:1 AND userName:person

请记住,“&”号用于分隔URL查询字符串中的参数(不幸的是,其名称与ElasticSearch查询字符串相同,但它指的是URL中?符号之后的整个参数集。)我认为您的URL是写的被解析为
  • URL参数1:q =!Content:你好
  • URL参数2:userID:1
  • URL参数3:userName:person
  • URL参数4:default_operator = AND

  • 由于userID:1和userName:person不会被解释为 q参数的一部分,该参数包含ElasticSearch查询字符串,因此ElasticSearch会将其丢弃。

    就文档而言, q参数包含一个ElasticSearch查询字符串,即 documented on its own page

    关于angularjs - 使用存储在Angular变量中的URI查询来查询Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34678949/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com