在elasticsearch中进行搜索

时间:2012-10-17 07:57:04

标签: elasticsearch

我准备查询对象并在elasticsearch中搜索。

为了制作查询对象,我给出了密钥及其值。

问题是,当关键和价值如同"品牌":"男士服装"那么在这种情况下,elasticsearch无法给我相关的文档。我认为问题是用逗号或可能是空格。一切都很好,如果我使用其他json属性的键和值(没有空格和逗号像"优先":"高")

请帮忙!

更新

没有匹配查询仍无效!我在创建搜索查询时发现的另一个问题。我正在使用的查询是:

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

这将返回名为Tom的所有文档。现在我希望所有的文档都有名称汤姆和专业是开发人员。所以,这里修改了一个:

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

                };     

但搜索结果是旧的。任何帮助!

2 个答案:

答案 0 :(得分:1)

听起来你正在使用TermQuery,不是吗?

不会对TermQuery进行分析,因此它们与您分析的内容不匹配。

尝试使用MatchQuery。它应该工作。

答案 1 :(得分:1)

您需要使用布尔查询 http://www.elasticsearch.org/guide/reference/query-dsl/bool-query.html

在这里,您可以要求ES采取各种查询的AND或OR

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

}