Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

151
Visualizações
Concatenar campos json y buscar en valor concatenado en MarkLogic

Tengo el siguiente formato json para almacenar el nombre y apellido de la persona. También guardo el apodo de la persona.

 { "Person": { "Records": [ { "nameType": "Primary", "firstName": "Sagar", "lastName": "Dravid" }, { "nameType": "konw as", "firstName": "Bunny", "lastName": "Bhau" } ] } }

Estoy desarrollando una API de búsqueda de escritura anticipada para la que necesito combinar el nombre y el apellido. Puedo buscar en un solo campo individual como solo en el nombre o en el apellido. intentó debajo del código

 .where(cts.jsonPropertyValueQuery("firstName", [str + "* *"], ["wildcarded", "punctuation-insensitive", "diacritic-insensitive", "unstemmed", "case-insensitive"])) .map(mapper) .withOptions({ search: ['filtered'] }) .result();

Cómo puedo concatenar campos json para lograr una búsqueda de nombre completa, de modo que, si el usuario escribe "Sagar Dravid" o "Bunny Bhau", debería obtener un resultado, pero no debería obtener un resultado si el usuario escribe "Sagar Bhau" o "Bunny Dravid". ¿Alguna sugerencia?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Si entiendo su requisito correctamente, podría usar un cts.nearQuery con un cts.orQuery para cada propiedad (lastName y firstName) que tiene un cts.jsonPropertyValueQuery para cada uno de los valores de nombre (dividiendo el espacio):

 const searchString = "Bunny Bhau" const query = cts.nearQuery( searchString.split(" ").map(term => cts.orQuery(["firstName", "lastName"] .map(property => cts.jsonPropertyValueQuery(property, term + "*" , ["wildcarded", "punctuation-insensitive", "diacritic-insensitive", "unstemmed", "case-insensitive"]) ) ) ), 1)

Lo cual generaría lo siguiente:

 cts.nearQuery([ cts.orQuery([ cts.jsonPropertyValueQuery("firstName", "Bunny*", [ "case-insensitive", "diacritic-insensitive", "punctuation-insensitive", "unstemmed", "wildcarded", "lang=en"], 1), cts.jsonPropertyValueQuery("lastName", "Bunny*", [ "case-insensitive", "diacritic-insensitive", "punctuation-insensitive", "unstemmed", "wildcarded", "lang=en"], 1) ],[]), cts.orQuery([ cts.jsonPropertyValueQuery("firstName", "Dravid*", [ "case-insensitive", "diacritic-insensitive", "punctuation-insensitive", "unstemmed", "wildcarded", "lang=en"], 1), cts.jsonPropertyValueQuery("lastName", "Dravid*", [ "case-insensitive", "diacritic-insensitive", "punctuation-insensitive", "unstemmed", "wildcarded", "lang=en"], 1) ],[])], 1,[], 1)
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda