我是新来的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. 实现A * - 搜索作为广度优先搜索/深度优先搜索
- 2. 广度优先搜索查询在MYSQL
- 3. 在Elasticsearch中优先执行搜索
- 4. 搜索模糊查询 - Elasticsearch
- 5. Elasticsearch搜索查询选择
- 6. SQL搜索查询应先在搜索
- 7. 优先搜索 - SQL
- 8. 优先深度优先搜索广度优先搜索或反之亦然
- 9. 广度优先搜索和深度优先搜索
- 10. 深度优先搜索和广度优先搜索了解
- 11. 优化MySQL搜索查询
- 12. 优化Mysql搜索查询
- 13. 优化搜索查询
- 14. 优化搜索查询
- 15. SQL查询优化(搜索)
- 16. 搜索查询优化Mysql
- 17. 优先查询
- 18. 将广度优先搜索转换为深度优先使用Java搜索
- 19. Elasticsearch查询优化
- 20. Elasticsearch优化查询
- 21. 广度优先搜索不起作用
- 22. 为多个搜索条件优化搜索查询
- 23. Elasticsearch提供读取优先级写入
- 24. Java - 深度优先搜索
- 25. 深度优先搜索
- 26. java深度优先搜索
- 27. 广度优先搜索 - Java
- 28. 深度优先搜索(C++)
- 29. 广度优先搜索
- 30. OCAML深度优先搜索