2016-09-01 7 views
0

私は電話番号を開始するとFULL_NAME、電子メールまたは電話でたとえば任意の列で単語の一部を検索

iの入力「16」を開始した場合、それが表示されるはずのすべてのユーザーを検索しようとしていますまたは "+16"を含む。

{ 
    "users" : { 
     "mappings" : { 
     "user" : { 
      "properties" : { 
       "full_name" : { 
        "analyzer" : "trigrams", 
        "include_in_all" : true, 
        "type" : "string" 
       }, 
       "phone" : { 
        "type" : "string", 
        "analyzer" : "trigrams", 
        "include_in_all" : true 
       }, 
       "email" : { 
        "analyzer" : "trigrams", 
        "include_in_all" : true, 
        "type" : "string" 
       } 
      }, 
      "dynamic" : "false" 
     } 
     }, 
     "settings" : { 
     "index" : { 
      "creation_date" : "1472720529392", 
      "number_of_shards" : "5", 
      "version" : { 
       "created" : "2030599" 
      }, 
      "uuid" : "p9nOhiJ3TLafe6WzwXC5Tg", 
      "analysis" : { 
       "analyzer" : { 
        "trigrams" : { 
        "filter" : [ 
         "lowercase" 
        ], 
        "type" : "custom", 
        "tokenizer" : "my_ngram_tokenizer" 
        } 
       }, 
       "tokenizer" : { 
        "my_ngram_tokenizer" : { 
        "type" : "nGram", 
        "max_gram" : "12", 
        "min_gram" : "2" 
        } 
       } 
      }, 
      "number_of_replicas" : "1" 
     } 
     }, 
     "aliases" : {}, 
     "warmers" : {} 
    } 
} 

は、名前の検索 "ロバート名

カール-XGET「ローカルホストの一部によって:?9200 /ユーザー/ _searchかなり同じマイESの設定がある

フルネームと電子メールで'-D' { "クエリ":{ "一致":{ "_all": "奪う" }}} 」

は、完全な名前のみを使用して、期待される結果を与えません。あなたのアナライザはフィールドfull_namephoneemailに設定されているので

+0

ます。http: //stackoverflow.com/questions/36199531/how-to-fuzzy-match-email-or-telephone-by-elasticsearch/36200119#36200119 – Val

+0

@Valはすべてのフィールドでは機能しません – NeverBe

答えて

1

、あなたは_allフィールドを使用してはならないが、このように、あなたのmulti_matchクエリでこれらのフィールドを列挙する:この答えは助けるべき

curl -XGET 'localhost:9200/users/_search?pretty' -d'{ 
    "query": { 
    "multi_match": { 
     "query": "this is a test", 
     "fields": [ 
     "full_name", 
     "phone", 
     "email" 
     ] 
    } 
    } 
}' 
+0

ありがとうございます。しかし、まだ電話で正しい結果を得ることはできません。私が54322543 w/o +167と入力しても全く検索しません – NeverBe

+0

質問をサンプル文書で更新してください。 – Val

+0

しかし、私はすべてのものを提供していた – NeverBe

関連する問題