elasticsearch在ThinkPHP框架的使用

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://unpkg.com/vue@next"></script>
    <!-- import CSS -->
    <link rel="stylesheet" href="https://unpkg.com/element-plus/lib/theme-chalk/index.css">
    <!-- import JavaScript -->
    <script src="https://unpkg.com/element-plus/lib/index.full.js"></script>
    <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
    <!-- 引入组件库 -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <style>
        em {
           color: red;
        }
    </style>
</head>
<body>
<div id="app">
    <input type="text" v-model="title" @blur="blur">请搜索
    <div v-for="item in data ">
        <div v-html="item.highlight.article[0]" ></div>
    </div>

</div>

</body>
<script>
    const App={
        data() {
            return {
                title:"",
                data:""
            }
        },
        methods:{
            blur(){
                axios.post('http://bwjy.com/ks/ElController/search', {
                    title:this.title
                })
                    .then(response=>(this.data=(response.data.msg.hits.hits)))
            }
        },
    }
    const app = Vue.createApp(App);
    app.use(ElementPlus);
    app.mount("#app")
</script>
</html>

        //建立索引
        $client = ClientBuilder::create()->setHosts(["127.0.0.1:9200"])->build();
        $params = [
            'index' => 'my_index',
            'body' => [
                'settings' => [
                    'number_of_shards' => 5,
                    'number_of_replicas' => 1
                ],
                'mappings' => [
                    'properties' => [
                        'title' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word',
                            'search_analyzer' => 'ik_max_word'
                        ],
                        'content' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word',
                            'search_analyzer' => 'ik_max_word'
                        ],
                    ]
                ]
            ]
        ];

        $client->indices()->create($params);

        
        //添加数据

        $params = [
            'index' => 'my_index',
            'body'  => ['title' => '悲观张三锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。','content'=>'测试数据']
        ];

        $response = $client->index($params);
        print_r($response);


        //高亮显示
        $params = [
            'index' => 'my_index',
            'body'  => [
                'query' => [
                    'multi_match' => [
                        'query' => '张三',
                        'fields' => ['title']
                    ]
                ],
                'highlight' => [
                    'fields' => [
                        '*' => new Highlighter()
                    ]
                ]
            ]
        ];

        $response = $client->search($params);
        print_r($response);

 

posted @ 2021-03-15 23:02  换机油的列夫  阅读(297)  评论(0)    收藏  举报