2013-07-11 60 views
3

使用haskell mongodb驅動程序進行文本搜索的狀態是什麼?Haskell mongodb文本搜索

mongo中現在有類似於SQL變體的'LIKE'運算符,那麼搜索集合或整個db以獲取特定文本字符串的最佳方法是什麼?

我讀過一些人提到外部工具,但我也可以看到,一些文本搜索是在2.4 mongo版本中實現的,這是通過命令接口完成的。

從控制檯執行它應該沒有任何問題,但我怎麼會從haskell驅動程序做到這一點?我在驅動程序API中找到了'runCommand'函數,它看起來應該可以將「文本」命令發送到服務器,但簽名顯示它只返回一個文檔 - 而不是文檔列表。那麼它是如何正確地完成的?

我將如何有效地搜索集合或分數據庫中的單詞或句子,以便它返回包含單詞的文檔列表?使用mongo'文字搜索'功能可以不使用外部工具嗎?應該在應用程序級別完成嗎?

謝謝。

回答

5

結果類型已包含文檔列表(包含搜索文本)。不幸的是,我無法在正在運行的數據庫上測試查詢,但我使用runCommand運行聚合(在爲haskell驅動程序實施之前)。你會得到這樣一個查詢結果的文件看起來是這樣的:

{ results: [ 
      { score : ..., 
       obj : { ... } 
      }, 
      ... 
      ], 
    ... , 
    ok : 1 
} 

結果文檔具有場results,它的值是場scoreobj文件。因此,最後,您可以在結果列表中找到obj-字段後面的每個匹配文檔。 欲瞭解更多詳情,你應該看看here

+0

Ahaaa ..就是這樣工作:)非常感謝你,我會先測試它,然後將它標記爲已解決,如果一切按預期工作。 –