0

検索で "new york" に一致させようとしています ("new" または "york" を別々に含む場所ではありません)。

ここに私の現在のクエリがあります:

"query" : {                        
    "query_string" : {            
        "query" : "new york" ,
        "fields" : ["city"]
    }
},
"filter" : {
    "and" : [{
        "query" : {                 
            "query_string" : {                    
                "query" : "country:US"               
             }            
        }
    }]
}               

ただし、これは「new york」ではなく「york」という名前の場所を返し続けます

これがどのように機能するかを完全には理解していません。これを実際に機能させるための助けをいただければ幸いです。

4

2 に答える 2

3

両方の単語を同じドキュメントに表示したい場合は、デフォルトの演算子を次のように変更する必要があります。

"query" : {                        
    "query_string" : {            
        "query" : "new york" ,
        "fields" : ["city"],
        "default_operator" : "AND"
    }
}

またはクエリで指定します。

"query" : {                        
    "query_string" : {            
        "query" : "new AND york" ,
        "fields" : ["city"]
    }
}

クエリ文字列のドキュメントをご覧ください。

そうではなく、両方の単語を同じドキュメント内で互いに近くに表示したい場合は、次のようなフレーズ クエリを作成する必要があります。

"query" : {
    "match_phrase" : {
        "message" : "new york"
    }
}
于 2012-11-21T13:37:59.940 に答える