我(非常)是ElasticSearch的新手,所以请原谅我可能荒谬的问题。我目前使用MySQL来执行全文搜索,并希望将其移至ElasticSearch。目前我的表有一个跨三列的全文索引:
title,description,tags
在ES中,每个文档都有title
,description
和tags
字段,允许我对一般短语进行全文搜索,或对给定标记进行过滤。 / p>
我还想添加更多可搜索的字段,例如username
(因此我可以检索给定用户的帖子)。那么,如何指定全文搜索应匹配title
或description
或tags
而不是username
?
从OR过滤器示例中,我假设我必须使用这样的东西:
{
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"or" : [
{
"term" : { "title" : "foobar" }
},
{
"term" : { "description" : "foobar" }
},
{
"term" : { "tags" : "foobar" }
}
]
}
}
}
来到这个新的,似乎这不是非常有效。有没有更好的方法,或者我需要将username
字段移动到单独的索引?
答案 0 :(得分:0)
这很好。 我一般我建议熟悉ElasticSearch映射类型和选项。 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html