java - 如何在 elasticsearch(java API)中使用 queryString()?

标签 java elasticsearch

我正在开发 elastic-search v1.1.1 我遇到了搜索查询问题。我想知道如何解决以下障碍

这是我的 map

{
  "token" : {
               "type" : "string"
            }
}

索引记录中的数据是

 {
   token : "4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd"
 }

我的搜索是

4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd

我想要记录的精确匹配,我需要使用哪个查询来获得记录的精确匹配 可以吗

  QueryBuilders.queryString() ?

我检查了 queryString() ,然后我最终确定它对精确匹配没有用

请推荐我

最佳答案

您可以在字符串周围加上引号以进行精确匹配:

QueryBuilders.queryString("\"4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd\"");

如果您不想部分匹配上述字符串索引一个未标记化版本的值并搜索它。在你的映射中添加:

"token": {
    "type": "multi_field",
    "fields": {
        "untouched":   { 
            "type": "string", 
            "index": "not_analyzed" 
        }
    }
}

然后搜索:

{
    "query": {
        "match": {
           "token.untouched": "4r5etgg-kogignjj-jdjuty687-ofijfjfhf-kdjudyhd"
         }
     }
}

关于java - 如何在 elasticsearch(java API)中使用 queryString()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697511/

相关文章:

java - 如何在 onReceive() 中关闭 Activity

java - Realm 未获取数据

elasticsearch - 如何使用 Elasticsearch 在查询时指定不同的分析器?

python - 转义elasticsearch中的特殊字符

java - ElasticSearch:使用 Java-API 对字段值进行辅助索引

elasticsearch - 如何过滤Elasticsearch搜索后返回的字段?

java - 在 ASCII、二进制、八进制和十六进制之间转换

java - 在 Solr 中存储 PDF

java - Android 中无法从外部类访问内部类数据

groovy - Elasticsearch 如何在更新中使用脚本(文件)