簡體   English   中英

具有Azure搜索字段的DocumentDB查詢

[英]DocumentDB Query with Azure Search fields

我想執行一個類似於SELECT * FROM c的DocumentDB查詢,其中c.teams IN(@teamsList)和CONTAINS(c.text,“ some string”)

問題是上面的查詢計算量大,幾乎超出了我們的S3收集限制(此查詢占用了2400RU,我們的數據集正在快速增長,我們將很快達到包含的掃描限制)。

我知道Azure搜索是一種更有效的方法或搜索可索引字段。 我的問題是如何有效地將Azure搜索的結果與其他查詢字段合並,在我的示例中,將其限制為團隊列表。 我們有興趣公開一個“查詢生成器”( 此處提供類似示例),其中CONTAINS是任何字段上允許的操作數。

如果要使用DocumentDB進行CONTAINS單詞搜索並避免掃描(並且不使用Azure搜索),則可以執行以下操作:

  1. 您將text標記為單詞數組。 您可以使用像Lucene.NET這樣的現成令牌生成器。 假設文字是“這是一個問題”
  2. 將單詞存儲為類似於text_tokens的數組。 text_words的內容為[“ this”,“ is”,“ question”](規范化為小寫,並刪除了停用詞)
  3. 使用ARRAY_CONTAINS(c.text_tokens,“ word”)查詢text_tokens的值。 這將使用索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM