Aplicação - Instalação - Desenvolvimento - Documentação - Deep Learning - FAQ - DICAS - EA Meia Hora - Tópicos Técnicos |
kumo search
é uma estrutura de mecanismo de pesquisa ponta a ponta que suporta recuperação de texto completo, índice invertido, índice direto, classificação, armazenamento em cache, camadas de índice, sistema de intervenção, coleção de recursos, computação offline, sistema de armazenamento e outras funções. kumo search
é executada na plataforma EA
(Elastic Automic Infrastructure Architecture) e oferece suporte a funções como工程自动化
,服务治理
,实时数据
,服务降级与容灾
em várias salas de computadores e vários clusters.
Com o desenvolvimento da Internet, pesquisar em toda a Internet não é mais a única forma de obter informações. Muitos serviços verticais de informação, como comércio eletrónico, redes sociais, notícias, etc., têm os seus próprios motores de busca. As características desses motores de busca são: médio volume de dados, negócios complexos e altos requisitos de experiência do usuário. O desenvolvimento desses motores de busca requer muito suporte de engenharia e algoritmos. kumo search
tem como objetivo fornecer uma estrutura de mecanismo de pesquisa pronta para uso para ajudar os usuários a construir rapidamente seus próprios mecanismos de pesquisa. Nesta estrutura, os usuários podem escrever lógica de negócios em python
por meio do compilador AOT no projeto. A estrutura gerará automaticamente código c++
e uma biblioteca binária dinâmica, que será atualizada dinamicamente no mecanismo de busca. Isso permite a iteração rápida dos mecanismos de pesquisa.
número de série | Nome do projeto | ilustrar | ilustrar |
---|---|---|---|
1 | collie | Faça referência a bibliotecas externas apenas de cabeçalho, como jason, toml, etc., para gerenciamento unificado | |
2 | turbo | hash, log, classe de contêiner, operações relacionadas a strings | |
3 | Melão | comunicação rpc | |
4 | alcaide | Encapsulamento do sistema de arquivos, arquivos locais, hdfs, s3, etc. | API unificada do sistema de arquivos, zlib, lz4, zst API unificada |
5 | mizar | Baseado em rocksdb, núcleo do mecanismo de armazenamento toplingdb | A função wisekey ainda não foi desenvolvida. Por enquanto, a versão oficial do rocksdb será usada. |
6 | Alioth Yuheng | memória de mesa | Em desenvolvimento |
7 | megreztianquan | Leitura e gravação de conjunto de dados | hdf5 cvs bin foi concluído e a API c++ avançada deve ser encapsulada |
8 | phekda | O mecanismo de vetor unificado acessa a API UnifiedIndex para simplificar a interface | Instantâneo de suporte, plug-in de filtro |
9 | meraktianxuan | Núcleo abrangente do mecanismo de pesquisa | A ser desenvolvido |
10 | Dubhe Tianshu | kernel PNL | A ser desenvolvido |
11 | brilho | GPU, cálculo de tensor de alta dimensão da CPU, etc. | |
12 | theia | Com base em gráficos opengl e exibição de imagens, o servidor não está disponível (sem dispositivo de exibição) | |
13 | anão | protocolo jupyter c++ kernel | |
14 | êxodo | Hércules e outras aplicações jupyter | Terminar |
15 | Hércules | compilador python aot | |
16 | carabina | gerenciador de pacotes c++, gerador cmake | Terminar |
17 | modelo de carabina | biblioteca de modelos cmake | Terminar |
18 | receitas de carboidrato | receitas de carbin dependem da configuração personalizada da biblioteca | Terminar |
18 | hadar | sugerir kernel do serviço de sugestão de pesquisa | Quase concluído, não é de código aberto para uso comercial |
19 | Netuno | cada serviço de front-end | Em desenvolvimento |
número de série | Nome do projeto | ilustrar | agendar |
---|---|---|---|
1 | Sírius | Descoberta de serviço de servidor de metadados EA, serviço de relógio global, serviço de configuração global, serviço de identificação global | Terminar |
2 | polar | Serviço autônomo do mecanismo vetorial | Terminar |
3 | Elnath | Serviço abrangente de pesquisa e citação independente | Em desenvolvimento |
4 | Vega | Edição de cluster de banco de dados do Vector Engine | Uso comercial completo, mas não de código aberto |
5 | Arcturus | Versão abrangente do cluster do mecanismo de pesquisa | Em desenvolvimento, não é código aberto para uso comercial |
6 | Pollux | Console de negócios do mecanismo integrado | Em desenvolvimento, não é código aberto para uso comercial |
7 | capela | serviço de triagem de ltr | Em desenvolvimento, não é código aberto para uso comercial |
8 | aldebarã | sugerir cluster de serviço de sugestão de pesquisa | Em desenvolvimento, não é código aberto para uso comercial |
9 | nunki | serviço de PNL | Em desenvolvimento, não é código aberto para uso comercial |
A série de meia hora se concentra na construção rápida de serviços de aplicativos de nível empresarial baseados na infraestrutura EA
, com foco em operações práticas, início rápido, desenvolvimento rápido, implantação rápida e iteração rápida.
**Este tópico apresenta principalmente o conhecimento básico dos motores de busca, bem como a evolução, atualização e design da arquitetura de busca com o desenvolvimento da tecnologia de busca e dos negócios de busca, bem como os princípios técnicos e implementação por trás disso. **
EA
é a infraestrutura de aplicativos do lado do servidor. EA
atualmente suporta sistemas operacionais centos
e ubuntu
. O sistema mac
está atualmente em desenvolvimento e faremos o possível para oferecer suporte mac
. No entanto, ainda não testamos. Para facilitar a compilação e o desenvolvimento do IDE, algumas funções subsequentes podem ser testadas para compatibilidade. Para implantação de ambiente básico, consulte Instalação e uso
cicd
do sistema EA
é gerenciado usando a ferramenta carbin. carbin
é um gerenciador de pacotes c++
, gerador cmake
, ferramenta cicd
. carbin
pode baixar bibliotecas dependentes de terceiros, gerar um sistema de compilação cmake
e compilar e implantar projetos. Para o uso de carbin
consulte a documentação da carabina
carabina | Conda | cmfazer | CPM | conan | bazel | |
---|---|---|---|---|---|---|
Complexidade de uso | fácil | meio | duro | meio | duro | duro |
Dificuldade de instalação | pip fácil | binário fácil | NA fácil | cmfazer | pip fácil | binário difícil |
padrão de dependência | fonte/binário | binário | fonte | fonte | fonte/binário | fonte |
árvore de dependência | apoiar | apoiar | apoiar | apoiar | apoiar | apoiar |
código-fonte local | apoiar | N / D | apoiar | apoiar | N / D | apoiar |
compatibilidade | bom | meio | bom | bom | bom | pobre |
velocidade | bom | meio | pobre | pobre | bom | pobre |
conda é uma boa ferramenta de gerenciamento. Não escolhi o conda porque suas dependências de compilação são relativamente complexas e as opções de compilação geralmente causam problemas, tornando-o inadequado para compilar projetos C++. A ferramenta de gerenciamento que acompanha o cmake não é adequada para o gerenciamento de projetos grandes. Cada vez que você recompilar o projeto, poderá fazer com que as bibliotecas dependentes sejam baixadas novamente e o tempo de compilação será muito longo. CPM é um gerenciador de pacotes C++. Da mesma forma, no ambiente de rede doméstico, o download de bibliotecas dependentes é lento e não adequado para o gerenciamento de grandes projetos. Conan é um gerenciador de pacotes C++, mas a velocidade de download das bibliotecas dependentes de Conan é lenta e não é adequada para o gerenciamento de grandes projetos.
Ao mesmo tempo, o carbin também é muito adequado para o gerenciamento de projetos C++ e pode gerar rapidamente um sistema cmake de gerenciamento de projetos C++, unificando o processo de compilação do projeto, configuração de opções e regras variáveis para instalação e exportação após a compilação dos projetos do sistema EA
. pode encontrar projetos e pacotes através da regra fixa find_package
Também é adequado para uso em qualquer projeto baseado em cmake
.
Se você desenvolve com base no docker, EA
fornece o desenvolvimento básico de cada contêiner inf:
centos7-openssl11-python-310-gcc-9.3:
lijippy/ea_inf:c7_base_v1