Elasticsearch: obtenha todos os documentos em que array contém um de muitos valores

H Bellamy

Tenho a seguinte estrutura de dados de documento no Elasticsearch:

{
    "topics": [ "a", "b", "c", "d" ]
}

Eu tenho uma lista de seleção onde o usuário pode filtrar quais tópicos mostrar. Quando o usuário estiver OK com seu filtro, eles serão apresentados a todos os documentos que possuem qualquer um dos tópicos selecionados na matriz "tópicos"

Eu tentei a consulta

{
    "query": {
        "terms": {
             "topics": ["a", "b"]
         }
    }
}

mas isso não retorna nenhum resultado.

Para expandir a consulta. Por exemplo, a lista ["a", "b"]corresponderia ao primeiro, segundo e terceiro objetos na matriz abaixo.

Exemplo

Existe uma boa maneira de fazer isso no Elasticsearch? Obviamente, eu poderia fazer várias consultas de "correspondência", mas isso é prolixo, pois tenho centenas de tópicos

Editar: meu mapeamento

{
    "fb-cambodia-post": {
        "mappings": {
            "scrapedpost": {
                "properties": {
                    "topics": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                }
            }
        }
    }
}
Richa

Como @Filip cordas mencionou, você pode usar topic.keywordlike.

 {
 "query": {
   "terms": {
     "topics.not_analyzed": [
        "A" , "B"
       ]
     }
   } 
 }

Isso fará a case sensitivepesquisa. Ele procurará a correspondência exata. Caso queira case-insensitivepesquisar, você pode usar query_stringcomo:

   {
    "query": {
     "query_string": {
       "default_field": "topics",
       "query": "A OR B"
     }
   }
}

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Elasticsearch Obtenha os valores de um campo de todos os documentos

Mongo db query todos os documentos contém substring que corresponde a um determinado array de strings

Obtenha valores únicos de um campo em elasticsearch e obtenha todos os registros

Consultar documentos que contêm todos os valores na matriz aninhada Elasticsearch

O Django obtém todos os objetos que contêm um pk de um relacionamento muitos para muitos

Obtenha todos os valores possíveis de um campo M2M em um modelo

Encontrar um conjunto que contém todos os valores de um conjunto original em uma consulta SPARQL

como encontrar um valor de linha que contém todos os valores possíveis de outra coluna em pandas

Obtenha todos os valores de matrizes de documentos mongo

Obtenha uma lista de todos os esquemas que contêm um determinado nome de tabela

Realm Swift seleciona todos os valores que correspondem a um campo em uma entidade de relacionamento um-para-muitos

Como adicionar todos os elementos de um array de tipo string que contém apenas valores flutuantes

No MySQL, como seleciono um resultado em que o resultado contém todos os valores que testei?

No MySQL, como seleciono um resultado em que o resultado contém todos os valores que testei?

SQL Obtenha todos os pedidos que contêm exclusivamente um tipo de item

Encontrar o número de documentos que contêm um termo em elasticsearch

Obtenha todos os documentos em um índice ES com python

Obtenha todos os documentos em um índice ES com python

Como excluir todos os documentos que contêm um determinado campo em um índice com api delete_by_query?

Obtenha a soma do primeiro elemento de um campo de array de todos os documentos no MongoDB

Como posso implementar um iterador em um enum que contém valores de fatia de diferentes tipos, convertendo todos os valores em String?

Obtenha todos os documentos de uma vez em um gerenciador de conclusão com getDocuments no Firestore

Como você obtém todos os valores de um atributo que todos os elementos contêm de um seletor?

Obtenha todos os resultados de um para muitos em 1 resultado

Mongo Obtenha todos os documentos em um raio de 10 milhas do local especificado

Verifique se o array de objetos contém todos os valores de um array de inteiros

Muitos para muitos obtêm todos os valores distintos de um modelo relacionado

Java cria um campo final que contém um valor de anotação para reutilizá-lo em muitos métodos

Mongoose retorna todos os documentos que contêm um valor onde quer que esteja dentro de uma propriedade

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo