ES提供了API的接口,可以直接通过路径加固定的参数,就可以实现操作ES
    php的操作类就是在API接口的基础上进行了封装

    1. 查看es基本信息
    2. curl localhost:9200
    3. 列出所有的Index
    4. curl -X GET 'http://localhost:9200/_cat/indices?v'
    5. 列举每个Index下的Type
    6. curl 'localhost:9200/_mapping?pretty=true'
    7. 添加Index
    8. curl -X PUT 'localhost:9200/weather'
    9. 删除Index
    10. curl -X DELETE 'localhost:9200/weather'
    11. 安装中文分词插件ik (安装完需要重启es
    12. elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
    13. 创建一个Index,并设置其结构和分词
    14. curl -X PUT -H 'Content-Type: application/json' 'localhost:9200/accounts' -d '
    15. {
    16. "mappings": {
    17. "person": {
    18. "properties": {
    19. "user": {
    20. "type": "text",
    21. "analyzer": "ik_max_word",
    22. "search_analyzer": "ik_max_word"
    23. },
    24. "title": {
    25. "type": "text",
    26. "analyzer": "ik_max_word",
    27. "search_analyzer": "ik_max_word"
    28. }
    29. }
    30. }
    31. }
    32. }'
    33. Index增加记录
    34. PUT方式
    35. curl -X PUT -H 'Content-Type: application/json' 'localhost:9200/accounts/person/1' -d '
    36. {
    37. "user": "张三",
    38. "title": "工程师"
    39. }'
    40. POST方式(POST方式不需要传idid随机生成)
    41. curl -X POST -H 'Content-Type: application/json' 'localhost:9200/accounts/person' -d '
    42. {
    43. "user": "李四",
    44. "title": "工程师"
    45. }'
    46. 注意:如果没有先创建 Index(这个例子是accounts),直接执行上面的命令,Elastic 也不会报错,而是直接生成指定的 Index。所以,打字的时候要小心,不要写错 Index 的名称。
    47. 查看指定条目的记录
    48. curl 'localhost:9200/accounts/person/1?pretty=true'
    49. 删除一条记录
    50. curl -X DELETE 'localhost:9200/accounts/person/1'
    51. 更新一条记录
    52. curl -X PUT -H 'Content-Type: application/json' 'localhost:9200/accounts/person/1' -d '
    53. {
    54. "user" : "张三",
    55. "title" : "软件开发"
    56. }'
    57. 查询所有记录
    58. curl 'localhost:9200/accounts/person/_search?pretty=true'
    59. 简单查询
    60. curl -H 'Content-Type: application/json' 'localhost:9200/accounts/person/_search?pretty=true' -d '
    61. {
    62. "query" : { "match" : { "title" : "工程" }},
    63. "from": 1, #0开始
    64. "size": 1, #返回几条数据
    65. }'
    66. OR查询
    67. curl -H 'Content-Type: application/json' 'localhost:9200/accounts/person/_search?pretty=true' -d '
    68. {
    69. "query" : { "match" : { "title" : "工程 哈哈" }}
    70. }'
    71. AND查询
    72. curl -H 'Content-Type: application/json' 'localhost:9200/accounts/person/_search?pretty=true' -d '
    73. {
    74. "query": {
    75. "bool": {
    76. "must": [
    77. { "match": { "title": "工程" } },
    78. { "match": { "title": "哈哈" } }
    79. ]
    80. }
    81. }
    82. }'