0

クエリ オブジェクトを用意し、elasticsearch で検索を行います。

クエリ オブジェクトを作成するために、キーとその値を指定します。

問題は、キーと値が "brand":"Men's Wear" のような場合です。この場合、elasticsearch は関連するドキュメントを提供できません。問題はコンマにあるか、スペースである可能性があると思います。キーと値に他のjsonプロパティを使用すると、すべて問題ありません(「priority」:「high」のようなスペースとコンマはありません)

助けてください!

アップデート:

一致しないクエリがまだ機能していません! 検索クエリの作成で見つけたもう 1 つの問題。私が使用しているクエリは次のとおりです。

var qryObj1 = {
                       "query" : {
                        "text" : {"name":"Tom"}
                    }
                };     

これにより、Tom という名前のすべてのドキュメントが返されます。ここで、Tom という名前で職業が開発者であるすべてのドキュメントを取得したいと考えています。したがって、ここで変更されたもの:

qryObj1 = {
                    "query" : {
                        "text" : {"name":"Tom","profession":"developer"}
                    },"operator" : "and"

                };     

しかし、検索結果は古いものです。助けて!

4

2 に答える 2

1

ブールクエリを使用する必要があります http://www.elasticsearch.org/guide/reference/query-dsl/bool-query.html

ここで、さまざまなクエリの AND または OR を取るように ES に依頼できます。

"bool" : {
    "must" : [
                    "text" : {"name":"Tom"},
                    "text" : {"profession":"developer"}
    ]

}

于 2012-10-21T05:08:57.460 に答える
1

TermQuery を使用しているようですね。

TermQuery は分析されないため、分析されたコンテンツと一致しません。

MatchQueryで試してください。それはうまくいくはずです。

于 2012-10-17T20:02:27.317 に答える