0
SELECT * FROM tablename WHERE field1 LIKE '%keysearch%' OR field2 LIKE '%keysearch%' OR field3 LIKE '%keysearch%';
如何将此查询转换为elasticsearch查询?elasticsearch查询LIKE多个术语或
SELECT * FROM tablename WHERE field1 LIKE '%keysearch%' OR field2 LIKE '%keysearch%' OR field3 LIKE '%keysearch%';
如何将此查询转换为elasticsearch查询?elasticsearch查询LIKE多个术语或
做到这一点最简单的方法是使用query_string
:
curl -XGET 'http://localhost:9200/index/tablename/_search?pretty' -d '{
"query": {
"query_string": {
"query":"*keysearch*",
"fields": ["field1","field2","field3"]
}
}
}'
QUERY_STRING将使用或默认并支持通配符。
但是,如果使用前导通配符和尾随通配符,则性能不会很高。
谢谢!它工作得很好。结果非常标准。但我发现这不是一个合理的安排。如何简化订单字段1,字段2,字段3的优先次序?请帮帮我! – Hunter007 2014-11-26 02:19:52
我想这应该是一个单独的问题 - 但你需要研究得分,并看看你如何能**提高**场比另一场的得分。最简单但不太灵活的是在[索引时间](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html)上进行提升。查询中更灵活(查看**增强查询**或**功能得分**)。 – 2014-11-26 10:01:37
我明白了。谢谢! – Hunter007 2014-11-27 07:26:49