簡體   English   中英

基於MongoDB中文檔屬性的彈性/最近搜索

[英]Elastic/Nearest search based on document properties in MongoDB

我們需要基於MongoDB中的文檔屬性完成最近的搜索。

讓我們舉個例子,MongoDB中有一個Car模式,信息將存儲為類似於以下內容的內容:

{
  Make: "Hyundai",
  Model: "Creta",
  Title: "Hyundai Creta E 1.6 Petrol",
  Description: "Compact SUV",
  Feature: {
    ABS:    true,
    EBD:    true,
    Speakers: 4,
    Display: false
  },
  Specification: {
    Length: "4270 mm",
    Width: "1780 mm",
    Height: "1630 mm",
    Wheelbase:  "2590 mm",
    Doors:  5,
    Seating:    5,
    Displacement: "1591 cc"
  },
  Safety: {
    Airbags: 2,
    SeatBeltWarning: false
  },
  Maintenance: {
    LastService: "21/06/2016",
    WashingDone: true
  }
}

需要根據以下條件提供搜索:

1. Make
2. Model
3. ABS
4. Seating
5. Displacement
6. Airbags

現在,結果應包含3個或更多屬性匹配(完全匹配)的記錄,並根據匹配的最大屬性數進行排序。

用MongoDB實現此目的的最佳方法是什么?

您可以編寫一些內容來為每個三元組字段生成文檔,然后將它們與$or放在一起,生成類似

{$or: [
    {Make: "Hyundai", Model: "Creta", Feature.ABS: true},
    {Make: "Hyundai", Model: "Creta", Specification.Seating: 5},
    ...
]}

排序可能需要按textScore進行排序

暫無
暫無

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

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