2017-01-22 65 views
2

執行全文搜索索引的最有效方法是什麼?如何在數據庫中存儲和索引Draft.js輸出?

我使用MongoDB的,但我覺得這不是在這個問題上的

我正在考慮兩種方式來存儲draft.js進一步索引輸出上下文如此重要:

  1. 轉換它降價。這看起來很簡單,全文搜索索引足夠聰明,可以在索引過程中過濾出所有垃圾字符。但是,如果降價如此之好,draft.js可能會將數據輸出爲降價而不是塊結構。因此,我認爲存儲塊應該有它的優勢。
  2. JSON.stringify之後存儲塊,並將每個塊的所有「text」屬性作爲純文本存儲在單獨的文檔屬性(或sql表格列)中。因此,純文本將僅用於索引,剩下的工作將由字符串化/解析的JSON完成。聽起來不必要的複雜,誠實。

如果你們已經遇到過這種情況,可能你有關於如何存儲和索引這些數據的一些精確建議?

這裏一些例子來具體:

Example of draftjs editor

文本的實施例:

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

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":{ 

     } 
     } 
    ] 
} 
+0

請提供代碼請..請具體以便其他人也可以回答,謝謝 –

+0

@ RobertAnthonyS.Tribiana,感謝您的建議,我已經添加了一些例子 – stkvtflw

+0

我想,這可能會澄清部分問題:https: //github.com/facebook/draft-js/issues/422 – stkvtflw

回答

0

同時節省了原始塊,做無論你需要什麼索引。原始塊中的文本部分非常簡單,因此您可以使用任何編程語言進行處理。

相關問題