Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

197
Views
¿Cómo almacenar e indexar la salida de Draft.js en las bases de datos?

¿Cuál es la forma más eficiente de realizar la indexación para la búsqueda de texto completo?

Uso mongodb, pero creo que esto no es tan importante en el contexto de esta pregunta.

Estoy pensando en dos formas de almacenar la salida de draft.js con una mayor indexación:

  1. Conviértalo en descuento. Esto parece simple, la indexación de búsqueda de texto completo es lo suficientemente inteligente como para filtrar todos los caracteres basura durante la indexación. Sin embargo, si la reducción fuera tan buena, draft.js probablemente generaría datos como reducción en lugar de la estructura de bloques. Por lo tanto, creo que debe haber ventajas al almacenar bloques tal como están.
  2. Almacene bloques después de JSON.stringify y almacene todas las propiedades de "texto" de cada bloque como texto sin formato en propiedad de documento separada (o columna de tabla para sql). Por lo tanto, el texto sin formato estará allí solo para la indexación y el resto del trabajo lo realizará JSON analizado/en cadena. Suena innecesariamente complicado, siendo honesto.

Si ya se han encontrado con esta situación, ¿pueden tener algunos consejos precisos sobre cómo almacenar e indexar estos datos?

Aquí algunos ejemplos para ser específicos:

Ejemplo de editor draftjs

Ejemplo de texto:

 <p>First line of text</p> <h1>A header</h1> <p>text and one <strong>BOLD</strong> word</p>

Salida de Draft.js:

 { "entityMap":{ }, "blocks":[ { "key":"4vno8", "text":"First line of text", "type":"unstyled", "depth":0, "inlineStyleRanges":[ ], "entityRanges":[ ], "data":{ } }, { "key":"dr3c5", "text":"A header", "type":"header-one", "depth":0, "inlineStyleRanges":[ ], "entityRanges":[ ], "data":{ } }, { "key":"c5ndf", "text":"text and one BOLD word", "type":"unstyled", "depth":0, "inlineStyleRanges":[ { "offset":13, "length":4, "style":"BOLD" } ], "entityRanges":[ ], "data":{ } } ] }
over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!