我有一个带标记器的字段,它被点分割。搜索时,以下值为aaa。bbb将分为两个术语:aaa和bbb。
我的问题是如何编写bool查询,将包含多个条件在同一项?
例如,我想得到所有文档,其中它的字段包含一个与gmail
模糊搜索匹配的术语,但同一术语不得包含gamil
。
以下是我想要实现的一些示例:
注意:以下查询似乎不起作用,因为它看起来好像一个术语匹配一个条件,而第二个术语匹配另一个,它将被视为命中。
{
...
"body": {
"query": {
"bool": {
"must": [
{
"fuzzy": {
"my_field": {
"value": "gmail",
"fuzziness": 1,
"max_expansions": 2100000000
}
}
},
{
"bool": {
"must_not": [
{
"query_string": {
"default_field": "my_field",
"query": "*gamil*",
"analyzer": "keyword"
}
}
]
}
}
]
}
}
},
}
我最终通过执行模糊(或任何其他)查询来使用Highlight,然后通过返回的Highlight对象以编程方式过滤结果。
如果不需要正则表达式,或者可以确保不超过布尔查询限制,那么span查询也可能是一个不错的选择。(请参阅提供的链接中的更多详细信息)
我在StackOverflow上找到了一大堆关于条件WHERE子句的答案,但是我找不到一个对我的问题有点特殊的答案,所以我只是想寻求一些帮助。。。 我公司的网站包含所有直接写在C#代码中的SQL查询(我不喜欢,但那是另一回事) 表单中有一组复选框(目前有3个选项,但此列表可能会增加)。对于选择的每个“提供者类型”,需要向WHERE子句添加一个附加条件,但我不确定如何最好地处理这个问题。 下面是处理
问题内容: 我正在尝试创建仅在数组 的同一项目 上满足多个条件的情况下与文档匹配的查询/过滤器。 假设这是文档: 我希望能够检索在同一元素上具有N个条件匹配的文档。例如:应该匹配文档,但是不应该匹配。 我正在尝试嵌套布尔过滤器(除此过滤器之外,我还有其他过滤器),但是它不起作用,有些类似于 任何想法如何做到这一点?谢谢 编辑 :我更改了映射,现在嵌套查询根据Val的响应工作。我现在无法在嵌套字段上
问题内容: 我有一个用于Elasticsearch的简单JSON查询,如下所示: 仅当值(在这种情况下为“ a1”)不为空时,才如何执行第二个“必须”条件? 问题答案: 您可以使用以下方法实现它-
很抱歉提出这个问题,但ElasticSearch查询可能会令人困惑。。。 目标:创建一个类似谷歌搜索查询的查询。输入的单词越多,得到的匹配结果越少。例如“四川酱”比“木兰四川酱”产生更多的结果。我的索引有一个博客文章类型,它有字段“标题”、“标签”、“类别”。ElasticSearch必须找到与查询中的所有单词相匹配的每个文档。文字可以遍布各个领域。例如,如果一个文档的标题包含“木兰”,它的标签包
问题内容: 我想使用查询来比较多个字段。我有字段1到4。我想搜索字段1大于字段2并且下面的查询工作正常的数据; 现在,我想搜索哪个字段1大于字段2以及哪个字段3大于字段4的数据。根据Elastic Search:如何编写多语句脚本?和此链接,我只需要用分号分隔每个语句。所以应该是这样的: 但是该查询无效,并返回如下编译错误: ] .value> doc [‘field2’]。value; doc
我想使用查询来比较多个字段。我有字段1到字段4。我想搜索数据,其中字段1大于字段2,下面的查询是完美的工作; 现在,我想搜索哪个字段1大于字段2,哪个字段3大于字段4的数据。根据弹性搜索:如何编写多语句脚本?在这个链接中,我只需要用分号分隔每条语句。所以它应该是这样的: 但该查询不起作用,并返回如下编译错误: {“根本原因”:[{“类型”:“脚本异常”,“原因”:“编译错误”,“脚本堆栈”:[“d