我是新来的elastisearch,我只是设置它并尝试默认搜索。我正在使用elasticsearch rails gem。我需要使用优先搜索来编写自定义查询(表格中的某些字段比其他字段更重要,比如title,updated_at在过去6个月内......)。我试图找到解释或教程如何做到这一点,但似乎没有什么可以理解的。任何人都可以帮助我,很快就会好起来。ElasticSearch为优先搜索写作查询
0
A
回答
1
因为从来没使用的红宝石/ elasticsearch集成,它似乎并不太难......该文档here表明你想要做这样的事情:
client.search index: 'my-index', body: { query: { match: { title: 'test' } } }
要执行基本搜索。
的ES文件here展示了如何做一个现场提振查询:
{
"multi_match" : {
"query" : "this is a test",
"fields" : [ "subject^3", "message" ]
}
}
全部放在一起,你会做这样的事情:
client.search index: 'my-index', body: { query: { multi_match : {
query : "this is a test",
fields : [ "subject^3", "message" ]
} } }
这将允许你搜索/增强字段 - 在上述情况下,主题字段被赋予消息字段得分的3倍。
关于如何进行高级评分有很好的blog post。它的部分显示调整基于日期比分的例子:
...
"filter": {
"exists": {
"field": "date"
}
},
"script": "(0.08/((3.16*pow(10,-11)) * abs(now - doc['date'].date.getMillis()) + 0.05)) + 1.0"
...
0
我在做PHP的,没用过的宝石从Ruby on Rails的。在这里,您可以使用脱字符(^)表示法为字段赋予优先级。
例子: - 假设,如果我们有表中字段,即姓名,电子邮件,信息和地址,应优先考虑的名称和内容,可以参考以下写
> { "multi_match" : {
> "query" : "this is a test",
> "fields" : [ "name^3", "message^2".... ] } }
这名有3个比其他字段的优先级高一倍,消息的优先级比其他字段高两倍。
相关问题
- 1. 在Elasticsearch中优先执行搜索
- 2. 搜索模糊查询 - Elasticsearch
- 3. SQL搜索查询应先在搜索
- 4. 广度优先搜索和深度优先搜索
- 5. 优化搜索查询
- 6. 优化搜索查询
- 7. 搜索查询优化Mysql
- 8. 优先查询
- 9. Elasticsearch优化查询
- 10. 广度优先搜索不起作用
- 11. 为多个搜索条件优化搜索查询
- 12. 广度优先搜索java.lang.NullPointerException
- 13. LISP - 广度优先搜索
- 14. java深度优先搜索
- 15. OCAML深度优先搜索
- 16. 简单Elasticsearch嵌套搜索查询
- 17. Elasticsearch慢搜索查询性能
- 18. elasticsearch搜索结果与子查询
- 19. ElasticSearch搜索查询定界符
- 20. ElasticSearch:查询文章正文不工作,但uri搜索工作
- 21. ElasticSearch - 使用搜索缩写
- 22. ElasticSearch查询优化 - Java API
- 23. Elasticsearch java的查询优化
- 24. 深度优先搜索和图形上的宽度优先搜索
- 25. 重写搜索引擎优化的URL与查询字符串
- 26. 优化字符串搜索Oracle查询
- 27. 如何优化搜索SQL查询?
- 28. Mysql查询优化搜索记录!
- 29. 广度优先与深度优先搜索的输入/输出
- 30. 广度优先或深度优先搜索