【问题标题】:Doing search in elasticsearch在 elasticsearch 中进行搜索
【发布时间】:2012-10-21 13:08:57
【问题描述】:

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

为了制作查询对象,我给出了键和它们的值。

问题是,当 key 和 value 像 "brand":"Men's Wear" 时,在这种情况下,elasticsearch 无法给我相关文档。我认为问题在于逗号或可能是空格。如果我使用其他 json 属性作为键和值,一切都很好(没有空格和逗号,如 "priority":"high")

请帮忙!

更新:

不匹配查询仍然无法正常工作!我在创建搜索查询时发现的另一个问题。我正在使用的查询是:

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

这将返回所有名为 Tom 的文档。现在我想获取所有名称为 Tom 且职业是开发人员的文档。所以,这里修改了一个:

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

                };     

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

【问题讨论】:

  • 我猜你需要提供你的映射,如果你已经提交了一个,以及你用来从弹性搜索中检索数据的查询。

标签: elasticsearch


【解决方案1】:

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

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

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

【讨论】:

  • 因此,正如@javanna 之前所写,您应该发布更多详细信息(映射、发送文档、查询)
【解决方案2】:

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

这里可以让ES对各种查询进行AND或OR

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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多