ElasticSearch中的全文模式

时间:2013-10-29 16:53:30

标签: elasticsearch

我(非常)是ElasticSearch的新手,所以请原谅我可能荒谬的问题。我目前使用MySQL来执行全文搜索,并希望将其移至ElasticSearch。目前我的表有一个跨三列的全文索引:

title,description,tags

在ES中,每个文档都有titledescriptiontags字段,允许我对一般短语进行全文搜索,或对给定标记进行过滤。 / p>

我还想添加更多可搜索的字段,例如username(因此我可以检索给定用户的帖子)。那么,如何指定全文搜索应匹配titledescriptiontags而不是username

从OR过滤器示例中,我假设我必须使用这样的东西:

{
    "filtered" : {
        "query" : {
           "match_all" : {}
        },
        "filter" : {
            "or" : [
                {
                    "term" : { "title" : "foobar" }
                },
                {
                    "term" : { "description" : "foobar" }
                },
                {
                    "term" : { "tags" : "foobar" }
                }
            ]
        }
    }
}

来到这个新的,似乎这不是非常有效。有没有更好的方法,或者我需要将username字段移动到单独的索引?

1 个答案:

答案 0 :(得分:0)

这很好。 我一般我建议熟悉ElasticSearch映射类型和选项。 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html