【发布时间】:2015-03-19 23:26:35
【问题描述】:
使用弹性搜索的查询 DSL,这是我目前构建查询的方式:
elastic_sort = [
{ "timestamp": {"order": "desc" }},
"_score",
{ "name": { "order": "desc" }},
{ "channel": { "order": "desc" }},
]
elastic_query = {
"fuzzy_like_this" : {
"fields" : [ "msgs.channel", "msgs.msg", "msgs.name" ],
"like_text" : search_string,
"max_query_terms" : 10,
"fuzziness": 0.7,
}
}
res = self.es.search(index="chat", body={
"from" : from_result, "size" : results_per_page,
"track_scores": True,
"query": elastic_query,
"sort": elastic_sort,
})
我一直在尝试实现允许在搜索中包含“#”的过滤器或分析器(我希望搜索“#thing”以返回包含“#thing”的结果),但我是短缺。我收到的错误消息没有帮助,只是告诉我我的查询格式不正确。
我试图合并此处找到的方法:http://www.fullscale.co/blog/2013/03/04/preserving_specific_characters_during_tokenizing_in_elasticsearch.html,但它在上下文中对我没有任何意义。
有人知道我该怎么做吗?
【问题讨论】:
标签: python elasticsearch