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

OSCHINA-MIRROR/istic-searchQueryEngine4Es

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

Поиск по запросу для Spring Data ElasticSearch

S-выражение парсер для Spring Data Elasticsearch.

Он разбирает s-выражение, подобное этому:

(and (between pub_time "2019-10-01" "1992-08-29") (like title "squid"))

И превращает его в boolQuery, подобный этому:

{
    "from": 0,
    "size": 1,
    "query": {
        "bool": {
            "must": [{
                    "range": {
                        "pub_date": {
                            "from": "1992-08-29T00:00:00.000Z",
                            "to": "2019-10-01T00:00:00.000Z",
                            "include_lower": true,
                            "include_upper": true,
                            "boost": 1.0
                        }
                    }
                },
                {
                    "match": {
                        "title": {
                            "query": "squid",
                            "operator": "OR",
                            "prefix_length": 0,
                            "max_expansions": 50,
                            "fuzzy_transpositions": true,
                            "lenient": false,
                            "zero_terms_query": "NONE",
                            "boost": 1.0
                        }
                    }
                }
            ],
            "disable_coord": false,
            "adjust_pure_negative": true,
            "boost": 1.0
        }
    },
    "version": true
}

TODO

  • Самоопределяемый макрос;
  • Добавить некоторые поддерживаемые макросом ключевые слова.

Установка

git clone https://gitee.com/istic/searchQueryEngine4Es.git
cd searchQueryEngine4Es
mvn install
<dependency>
    <groupId>cn.ac.istic.infrastructure</groupId>
    <artifactId>searchQueryEngine4Es</artifactId>
    <version>1.0</version>
</dependency>

Этот проект теперь протестирован с версией Spring Cloud как:

<parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>Finchley.SR1</version>
</parent>

Использование

Добавьте AbstractEsQueryRepositoryBase.class в свой базовый класс репозитория следующим образом:

@SpringBootApplication(scanBasePackages = "cn.ac.istic")
@EnableElasticsearchRepositories(basePackages = "cn.ac.istic",
    repositoryBaseClass = AbstractEsQueryRepositoryBase.class)
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Затем вы можете создать свой репозиторий elasticsearch следующим образом:

public interface EsPolicyRepository extends EsQueryRepository<EsPolicy, Integer> {}

С автоматически подключённым свойством

@Autowired 
private EspolicyRepository espolicyRepository;

Вы можете выполнить запрос и получить результат:

@Transactional
public Page<EsPolicy> fuzzySearch(String query, Pageable pageable) throws ThrowOutMessageAndDataException {
    return esPolicyRepository.searchByQuery(query, pageable);
}

Запрос

Следующие ключевые слова поддерживаются сейчас:

  • eq, принимает 2 параметра, например [FieldName, Integer/Double/String], точное соответствие;
  • like, принимает 2 параметра, например [FieldName, String], поиск с подстановочными знаками;
  • startWith, принимает 2 параметра, например [FieldName, String], прямое соответствие;
  • between, принимает 3 параметра, например [FieldName, time-String, time-String], соответствие диапазону времени;
  • after, принимает 2 параметра, например [FieldName, time-String];
  • before, принимает 2 параметра, например [FieldName, String];
  • and, принимает несколько параметров, например [query...], все условия выполняются;
  • or, принимает несколько параметров, например [query...], выполняется более одного условия;
  • not, принимает несколько параметров, например [query...], ни одно из перечисленных условий не выполняется.

Любые ключевые слова, которые вы хотели, могут быть поддержаны путём отправки запросов на вытягивание.

Лицензия

Лицензия MIT (MIT)

Авторское право (c) 2014

Настоящим предоставляется разрешение, бесплатное для любого лица, получающего копию этого программного обеспечения и связанных файлов документации («Программное обеспечение»), на работу с Программным обеспечением без ограничений, включая, помимо прочего, следующее: Права на использование, копирование, изменение, объединение, публикацию, распространение, передачу и/или продажу копий Программного обеспечения, а также разрешение лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:

Приведённое выше уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ДЕЙСТВИЯ КОНТРАКТА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, СВЯЗАННЫЕ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ОПЕРАЦИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

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

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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