ArangoDB-Community / ArangoBnB

16 stars 3 forks source link

Filter endpoint #38

Closed cw00dw0rd closed 3 years ago

cw00dw0rd commented 3 years ago

Adds separate route for 'filters' on amenities. Potential improvements:

cw00dw0rd commented 3 years ago

Contains commits from #37 - merge that first.

cw00dw0rd commented 3 years ago

This relies on a new view definition you can restore the dump or recreate the view (see below): https://drive.google.com/drive/folders/1uomslIev0N2tyQ4-9UMCll9gNqgv4rng?usp=sharing

See #14 for more details on query changes.

Still needs effort put into the frontend to properly display the markers that match the results.

You can instead drop and recreate the view if you prefer, you can copy/paste the following to create the view.

db._createView("arangobnb", "arangosearch", {
  "writebufferIdle" : 64,
  "writebufferSizeMax" : 33554432,
  "consolidationPolicy" : {
    "type" : "tier",
    "segmentsBytesFloor" : 2097152,
    "segmentsBytesMax" : 5368709120,
    "segmentsMax" : 10,
    "segmentsMin" : 1,
    "minScore" : 0
  },
  "primarySort" : [
    {
      "field" : "number_of_reviews",
      "asc" : false
    },
    {
      "field" : "review_scores_rating",
      "asc" : false
    }
  ],
  "storedValues" : [ ],
  "writebufferActive" : 0,
  "consolidationIntervalMsec" : 1000,
  "cleanupIntervalStep" : 2,
  "commitIntervalMsec" : 1000,
  "links" : {
    "listings" : {
      "analyzers" : [
        "identity"
      ],
      "fields" : {
        "room_type" : {
        },
        "price" : {
        },
        "number_of_reviews" : {
          "analyzers" : [
            "text_en",
            "identity"
          ]
        },
        "neighborhood_cleansed" : {
        },
        "amenities" : {
          "analyzers" : [
            "text_en",
            "identity"
          ]
        },
        "host_id" : {
        },
        "review_scores_rating" : {
          "analyzers" : [
            "text_en",
            "identity"
          ]
        },
        "neighborhood" : {
          "analyzers" : [
            "text_en"
          ]
        },
        "description" : {
          "analyzers" : [
            "text_en"
          ]
        },
        "location" : {
          "analyzers" : [
            "geo"
          ]
        }
      },
      "includeAllFields" : false,
      "storeValues" : "none",
      "trackListPositions" : false
    }
  },
  "primarySortCompression" : "lz4"
})