spring-boot - Elasticsearch 结果与搜索键不匹配

标签 spring-boot elasticsearch spring-data-elasticsearch

我已经完成了对名称的索引。它包含椅子,椅子等数据。
当我尝试使用“cha”进行搜索时,它没有返回任何椅子。它返回的是“粗毛地毯”,我希望有椅子的文档在这里。
下面是我的代码:

BoolQueryBuilder rootBoolQuery = new BoolQueryBuilder();
MultiMatchQueryBuilder multiMatchQueryBuilder = multiMatchQuery(searchKey).field(
    SEARCH_CATEGORY_NAME_FIELD);
multiMatchQueryBuilder.fuzziness(Fuzziness.TWO);
multiMatchQueryBuilder.type(Type.BEST_FIELDS);
rootBoolQuery.must(multiMatchQueryBuilder);
搜索请求:
{"query":{"bool":{"must":[{"multi_match":{"query":"cha","fields":["categoryname^1.0"],"type":"best_fields","operator":"OR","slop":0,"fuzziness":"2","prefix_length":0,"max_expansions":50,"zero_terms_query":"NONE","auto_generate_synonyms_phrase_query":true,"fuzzy_transpositions":true,"boost":1.0}}],"adjust_pure_negative":true,"boost":1.0}},"sort":[{"productcount":{"order":"desc"}}]}
搜索响应:
{
"took": 4,
"timed_out": false,
"_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
},
"hits": {
    "total": {
        "value": 1,
        "relation": "eq"
    },
    "max_score": null,
    "hits": [
        {
            "_index": "category",
            "_type": "_doc",
            "_id": "331869",
            "_score": null,
            "_source": {
                "rootcategory": "Home",
                "categorycode": "Shag_Rugs",
                "categoryname": "        Shag Rugs",
                "categoryid": 331869,
                "parentcategory": "    Rugs",
                "productcount": 59
            },
            "sort": [
                59
            ]
        }
    ]
}
}
对应:
"categoryname": {
                "type": "text",
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                    }
                }
            }
我怎样才能解决这个问题?
谢谢,
斯里

最佳答案

嗨,您可以为自己的用例使用前缀查询,让我知道它是否解决了您的目的。请去Click here to get more info

关于spring-boot - Elasticsearch 结果与搜索键不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63258387/

相关文章:

ruby-on-rails-3.2 - Asciifolding 不工作 Elastic Search Rails

java - Spring Data Elasticsearch 的 ElasticsearchTemplate vs ElasticsearchRestTemplate vs ElasticsearchOperations

java - Android WebView 中的 WebRTC 使用 NextRTC Spring Signaling Server

spring-boot - 用于搜索 API 的 Spring Boot REST 设计

java - 将 spring boot 添加到现有项目而不更改 main(args[]) 方法

elasticsearch - Couchbase-Elasticsearch:自定义动态类型

java - Spring Boot多部分文件上传集成测试-空文件

elasticsearch - 第一个嵌套对象的源过滤

java - 索引@MultiField spring-data-elasticsearch。国际化目的

elasticsearch - Elasticsearch API:SearchQuery和SearchResponse之间的区别?