我正在使用Meteor (所以Javascript,Node,NPM等),我想提供一个简单的文本输入,供用户通过Elasticsearch进行搜索。我希望能够在文本上使用修饰符,如+和"“,并搜索特定的字段。我正在寻找的东西,可以转换成Elasticsearch查询DSL的纯文本输入。
以下是一些示例查询:
这个查询意味着关键字"tatooine“必须存在:
stormtrooper +tatooine这意味着“死亡之星”应该是一个关键词:
stormtrooper "death star"这将仅在类别字段中搜索关键字"bloopers“:
stormtrooper category=bloopers有没有可以做到这一点的库?是否存在通用的解决方案,或者这就是我找不到任何现有答案的原因?
发布于 2015-10-29 17:25:10
除了category=bloopers之外,simple_query_string将开箱即用地支持您的查询语法,它应该是category:bloopers,但除此之外,它应该可以工作:
curl -XPOST localhost:9200/your_index/_search -d '{
"query": {
"simple_query_string": {
"query": "stormtrooper category:bloopers"
}
}
}'
curl -XPOST localhost:9200/your_index/_search -d '{
"query": {
"simple_query_string": {
"query": "stormtrooper +tatooine"
}
}
}'您也可以直接在query string中发送查询,如下所示:
curl -XPOST localhost:9200/your_index/_search?q=stormtrooper%20%22death%20star%22"https://stackoverflow.com/questions/33406627
复制相似问题