弹性搜索查询:仅查询整个单词

时间:2015-05-22 03:37:28

标签: elasticsearch

您好我最近开始使用弹性搜索,我似乎无法仅搜索整个单词。

例如:

  

输入:abc

     

匹配:abc,abc d,e abc,...

     

不匹配:abcd,emabc,...

我尝试过使用以下内容:

public class MyClass{
    static{
        System.loadLibrary("MyClass");
    }
    public static native void init();

    public static native void testCpp(long buf);
    public static void testJava(long buf){
        testCpp(buf);
    }
    public static void main(String[] args){
        init();
    }
}

但似乎没有任何效果。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我假设您使用Standard Analyzer来分析索引时的字段,这会将数据拆分为单词。然后你只需要使用Match Query(或更灵活的查询:Query String Query,它支持多字段,通配符搜索......)来查询数据:

{
  "query" : {
      "match" : {
         "keywords.alias" : {
            "query" : "abc"
          }
      }
  }
}