1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/avatarwx-ruoyi-cloud-es

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Описание платформы

  • Проект демонстрации поисковой системы на основе RuoYi-cloud3.5.0 + elasticsearch7, использующий два классических примера (поиск недвижимости на карте Baidu + поиск по содержанию статей), демонстрирующий основные функции Elasticsearch и оригинальный код, а также упрощённый код (easy-es)~

Не забудьте поставить звезду в правом верхнем углу для постоянного отслеживания обновлений~~

Встроенные функции

Панель управления

    1. Информация о недвижимости: поддерживает добавление, изменение, удаление и редактирование информации о недвижимости с панели управления.
    1. Агрегированные статистики: статистика количества недвижимости в каждом районе и каждом жилом комплексе.
    1. Подсказки поиска (search-as-you-type): динамическое отображение подсказок в зависимости от введённого текста.
    1. Поиск недвижимости на карте: отображение информации о недвижимости с помощью карты Baidu, изменение данных о недвижимости при перетаскивании и масштабировании карты.

Онлайн-тестирование

  • (Пользовательский интерфейс) http://49.232.18.37:9205
  • (Панель управления) http://49.232.18.37:9092
  • Тестовые учётные записи
  • Учётная запись для управления процессами: admin / admin123 (можно рисовать процессы, для тестирования процессов используйте тестовые учётные записи)## Демонстрация функций страниц

Группа для общения в QQ

  • Группа для общения в QQ: 612475165 (для добавления в группу сначала поставьте звезду проекту, иначе проверка не пройдёт, формат указания: имя пользователя на Gitee)
  • Перейдите по ссылке для добавления в группу [ruoyi-cloud-es]: https://jq.qq.com/?_wv=1027&k=lV5NGYNM

Инструкции по запуску

Необходимо запустить следующие модули. Порядок запуска произвольный.

  • RuoYiAuthApplication
  • RuoYiSystemApplication
  • RuoYiGatewayApplication
  • RuoYiNewsApplication (модуль аренды жилья)
  • RuoYiFileApplication (сервис файлов)

Друзья* Благодарим за открытое микросервисное приложение от великого дяди RuoYi: https://gitee.com/y_project/RuoYi-Cloud

  • Благодарим за открытое приложение по поиску жилья от великого дяди myxw: https://gitee.com/myxw/ElasticSearch_House

  • Благодарим за открытое приложение easy-es от великого дяди dromara: https://gitee.com/dromara/easy-es### Версии плагинов

  • RuoYi-Cloud 3.5.0

  • Nacos 2.0.2

  • Node.js 14.0.0

  • npm 6.14.4

  • elasticsearch 7.14.1

Установка окружения

1.1 Установка Docker

    yum install -y yum-utils

  # Адрес Docker от Alibaba (внутренний адрес, быстрее)
  yum-config-manager \
      --add-repo \
      http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  yum install docker-ce docker-ce-cli containerd.io


  docker version # Просмотр версии Docker

  systemctl status docker		# Просмотр статуса службы Docker

  systemctl start docker		# Запуск службы Docker
  systemctl stop docker		# Остановка службы Docker
  systemctl status docker		# Просмотр статуса службы Docker
  systemctl restart docker	# Перезапуск службы Docker

  vim /etc/docker/daemon.json
  # Добавьте следующий контент, замените по необходимости. По умолчанию используется мой адрес
  {
    "registry-mirrors": ["https://mr63yffu.mirror.aliyuncs.com"]
  }

  systemctl daemon-reload
  systemctl restart docker	# Перезапуск службы Docker

1.2 Установка Docker Compose

  curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

  # Примените права доступа к исполняемому файлу
  sudo chmod +x /usr/local/bin/docker-compose

  docker-compose --version

1.3 Установка Elasticsearch

Выполнение команд

mkdir -p /data/docker_data/es-kibana
mkdir -p /data/docker_data/es-kibana/es/config
touch    /data/docker_data/es-kibana/docker-compose.yml
touch    /data/docker_data/es-kibana/es/config/elasticsearch.yml
vim      /data/docker_data/es-kibana/docker-compose.yml
vim      /data/docker_data/es-kibana/es/config/elasticsearch.yml
cd /data/docker_data/es-kibana
docker-compose up -d # Запуск Elasticsearch
docker-compose down # Остановка Elasticsearch

Содержимое файла docker-compose.yml```

version: '3.1' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.14.1 container_name: es environment: - discovery.type=single-node - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 mem_limit: 4g volumes: - esdata1:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:7.14.1 container_name: kibana environment: - ELASTICSEARCH_URL=http://es:9200 - SERVER_NAME=kibana ulimits: memlock: soft: -1 hard: -1 mem_limit: 4g ports: - 5601:5601 networks: - esnet volumes: esdata1: driver: local networks: esnet: driver: bridge

версия: '3'
# Бридж es -> Для удобства взаимной коммуникации
networks:
  es:
services:
  elasticsearch:
    image: registry.cn-hangzhou.aliyuncs.com/zhengqing/elasticsearch:7.14.1      # Оригинальное зеркало `elasticsearch:7.14.1`
    container_name: elasticsearch             # Имя контейнера 'elasticsearch'
    restart: unless-stopped                           # Указание политики перезапуска контейнера, чтобы он всегда перезапускался, но не учитывал контейнеры, которые были остановлены при запуске Docker-демона
    volumes:                                  # Настройка пути монтирования данных, отображение локального каталога на каталог контейнера
      - ". /es/data:/usr/share/elasticsearch/data"
      - ". /es/logs:/usr/share/elasticsearch/logs"
      - ". /es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
      - ". /es/plugins/:/usr/share/elasticsearch/plugins"
    environment:                              # Установка переменных окружения, аналогично параметру -e в команде docker run
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
      discovery.type: single-node
      ES_JAVA_OPTS: "-Xmx512m -Xms512m"	      ELASTIC_PASSWORD: "123456" # пароль для учетной записи elastic
 	    ports:
 	      - "9202:9200"
 	      - "9302:9300"
 	    networks:
 	      - es
  	  kibana:
 	    image: registry. cn-hangzhou. aliyuncs. com/zhengqing/kibana:7.14.1       # Оригинальное зеркало `kibana:7.14.1`
 	    container_name: kibana
 	    restart: unless-stopped
 	    volumes:
 	      - . /kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
 	      - . /kibana/logs:/usr/share/kibana/logs
 	    environment:
 	      TZ: Asia/Shanghai    # Изменение часового пояса контейнера на CST (по умолчанию UTC)
 	      LANG: en_US.UTF-8
 	    ports:
 	      - "5601:5601"
 	    depends_on:
 	      - elasticsearch
 	    links:
 	      - elasticsearch
 	    networks:
 	      - es
 	  elasticsearch-head:
 	    image: wallbase/elasticsearch-head:6-alpine
 	    container_name: elasticsearch-head
 	    restart: unless-stopped
 	    environment:
 	      TZ: 'Asia/Shanghai'
 	    ports:
 	      - '9100:9100'
 	    networks:
 	      - es#### Содержимое файла elasticsearch.yml:

cluster.name: "docker-cluster" network.host: 0.0.0.0 http.port: 9200

Включение кросс-доменной связи для es

http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,Content-Type

Включение безопасного режима

#xpack.security.enabled: true #xpack.security.transport.ssl.enabled: true


### 1.4 Установка китайского токенизатора

Сначала скачайте пакет токенизатора с GitHub [elasticsearch-analysis-ik-7.14.1.zip](https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip)

Затем распакуйте его в следующую директорию /data/docker_data/es-kibana/es/plugins/analysis-ik-7.14.1

## Инструкции по запуску

## 1. Подготовка данных перед запуском, создание индексов Elasticsearch

### 1.1 Создание индекса для содержимого статей article

Метод запроса: PUT    (используйте Postman для доступа)

Адрес запроса: http://127.0.0.1:9200/article

Содержание запроса: (используйте Postman для доступа)

```json
{
  "settings": {
    "number_of_replicas": 0
  },
  "mappings": {
    "dynamic": false,
    "properties": {
      "publishTime": {
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
        "type": "date"
      },
      "articleCover": {
        "type": "keyword"
      },
      "articleType": {
        "type": "integer"
      },
      "publishUserId": {
        "type": "keyword"
      },
      "title": {
        "analyzer": "ik_smart",
        "type": "text"
      },
      "categoryId": {
        "type": "integer"
      }
    }
  }
}

Параметры:

{
  "number_of_replicas": 0  <!-- Количество реплик установлено в 0 -->
}

Правильный ответ:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "article"
}
```------

### 1.2 Создание индекса для поиска недвижимости xunwu

Метод запроса: PUT    (используйте Postman для доступа)

Адрес запроса: http://127.0.0.1:9202/xunwu

Содержание запроса: (используйте Postman для доступа)```markdown
{
  "settings": {
    "number_of_replicas": 0
  },
  "mappings": {
    "dynamic": false,
    "properties": {
      "id": {
        "type": "long"
      },
      "houseId": {
        "type": "long"
      },
      "title": {
        "type": "text",
        "analyzer": "ik_smart",
        "search_analyzer": "ik_smart"
      },
      "price": {
        "type": "integer"
      },
      "area": {
        "type": "integer"
      },
      "createTime": {
        "type": "date",
        "format": "strict_date_optional_time||epoch_millis"
      },
      "lastUpdateTime": {
        "type": "date",
        "format": "strict_date_optional_time||epoch_millis"
      },
      "cityEnName": {
        "type": "keyword"
      },
      "regionEnName": {
        "type": "keyword"
      },
      "direction": {
        "type": "integer"
      },
      "distanceToSubway": {
        "type": "integer"
      },
      "subwayLineName": {
        "type": "keyword"
      },
      "subwayStationName": {
        "type": "keyword"
      },
      "tags": {
        "type": "text"
      },
      "street": {
        "type": "keyword"
      },
      "district": {
        "type": "keyword"
      },
      "description": {
        "type": "text",
        "analyzer": "ik_smart",
        "search_analyzer": "ik_smart"
      },
      "layoutDesc": {
        "type": "text",
        "analyzer": "ik_smart",
        "search_analyzer": "ik_smart"
      },
      "traffic": {
        "type": "text",
        "analyzer": "ik_smart",
        "search_analyzer": "ik_smart"
      },
      "roundService": {
        "type": "text",
        "analyzer": "ik_smart",
        "search_analyzer": "ik_smart"
      },
      "rentWay": {
        "type": "integer"
      },
      "suggest": {
        "type": "completion"
      },
      "location": {
        "type": "geo_point"
      }
    }
  }
}
```Параметры описания:

```number_of_replicas": 0  <!-- Количество реплик установлено в 0 -->
```---

### 1.3 Удаление индекса (этот шаг не требуется выполнить)

Метод запроса: DELETE (пожалуйста, используйте Postman для доступа)

Адрес запроса: http://127.0.0.1:9202/article

Правильный ответ:

{ "acknowledged": true }


---

### 1.4 Синхронизация данных аренды из MySQL в Elasticsearch (достаточно выполнить запрос к этому интерфейсу)

Метод запроса: GET (пожалуйста, используйте Postman для доступа)

Адрес запроса: http://127.0.0.1:9205/rent/houseDataToEs

Правильный ответ:

{ "code": 200, "message": "OK", "data": "success", "more": false }


---

## 1. Работа с картами Baidu

### 1.1 Получение ключа API Baidu Maps (AK)

(Для локального запуска ключ не требуется, для развертывания проекта на сервере ключ необходим)

Откройте браузер и перейдите по адресу https://lbsyun.baidu.com/, затем перейдите в раздел **Консоль** и выполните личную идентификацию.

После успешной идентификации перейдите в раздел **Консоль** и выберите **Управление приложениями Мои приложения**

Нажмите **Создать приложение** и заполните следующие данные, остальные параметры оставьте по умолчанию.

#### Создание ключа API для браузерной версии

Название приложения:

	xunwu-web

Тип приложения:

Браузерная версия


Метод проверки запросов:

Проверка белого списка IP-адресов


Белый список Referer:

0.0.0.0,127.0.0.1,localhost,192.168.1.83,49.232.18.37


#### Создание ключа API для серверной версии

Название приложения:	xunwu-server

Тип приложения:

Серверная версия


Метод проверки запросов:

Проверка белого списка IP-адресов


Белый список Referer:

0.0.0.0/0, 0.0.0.0, 127.0.0.1, 49.232.18.37


### 1.2 Замена ключа API в коде на полученный ключ

Замените строку кода 39 в следующем файле на полученный ключ для серверной версии:

https://gitee.com/avatarwx/ruoyi-cloud-es/blob/master/ruoyi-modules/ruoyi-modules-news/src/main/java/com/ruoyi/news/service/house/AddressServiceImpl.java

Замените строку кода 90 в следующем файле на полученный ключ для браузерной версии:

https://gitee.com/avatarwx/ruoyi-cloud-es/blob/master/ruoyi-modules/ruoyi-modules-news/src/main/resources/templates/rent-map.html

### 1.3 Если карта не загружается, закройте ваш прокси или VPN.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Проект демонстрации поисковой системы на основе RuoYi-cloud 3.5.0 + Elasticsearch 7, использующий два классических примера (поиск недвижимости на Baidu Map + поиск содержимого статей), демонстрирующий основные функции Elasticsearch и оригинальный стиль кода по сравнению с упрощённым (easy-es). Поддерживает подсветку, токенизацию, функции Geo и д... Развернуть Свернуть
JavaScript и 6 других языков
MIT
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/avatarwx-ruoyi-cloud-es.git
git@api.gitlife.ru:oschina-mirror/avatarwx-ruoyi-cloud-es.git
oschina-mirror
avatarwx-ruoyi-cloud-es
avatarwx-ruoyi-cloud-es
master