java - 返回包含用户在 Elasticsearch 中输入的关键字的字符串列表

标签 java spring-boot elasticsearch

我正在 Elasticsearch 中寻找一种搜索类型,它返回包含关键字的所有字符串。以下查询仅在整个文本为“google”时匹配(不区分大小写,因此它也匹配 Google 或 GooGlE 等)。如何匹配另一个字符串中的“google”,或者即使我写了“goog”?

query: {
bool : {
    must: {
        match: { text: 'google'} 
    }
}

}

最佳答案

How do I match for the 'google' inside of another string or even if I write 'goog'?

Wildcard query可以帮助您在字段中找到您要查找的子文本。

在您的情况下,它将如下所示。 (无论前后文本是什么,它都会返回存在文本 goog 的任何文档,例如:this is google OR he is google the answer)

GET /_search
{
    "query": {
        "wildcard": {
            "field_name": {
                "value": "*goog*",              
            }
        }
    }
}

关于java - 返回包含用户在 Elasticsearch 中输入的关键字的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59363490/

相关文章:

java - 使用 apache POI 读取 excel 2003 文件 - FileNotFound

java - Java双向链表

java - Jdo(datanucleus)integer_idx列和数据绑定(bind)

java - Spring Boot SSL 和 keystore 证书安装

java - 正则表达式删除 2 个字符串之间的所有内容

java - 如何在可迭代的 Spring Boot Flux 中延迟发出每个项目

java - 如何使用 Spring Boot 和 AngularJS 将 JSON 对象插入数据库?

elasticsearch - 如何将自定义分析器添加到映射ElasticSearch-2.3.5进行部分搜索?

elasticsearch - ElasticSearch正在从查询或构面中跳过单词 “no”?

elasticsearch - Elasticsearch NEST客户端兼容性