我目前在複雜的URL處理概念問題上掙扎。該應用程序有一個產品屬性數據庫表/集合與所有不同的產品類型(即類別,顏色,製造商,材料等)。複雜的URL處理概念
{_id:1,alias:"mercedes-benz",type:"brand"},
{_id:2,alias:"suv-cars",type:"category"},
{_id:3,alias:"cars",type:"category"},
{_id:4,alias:"toyota",type:"manufacturer"},
{_id:5,alias:"red",type:"color"},
{_id:6,alias:"yellow",type:"color"},
{_id:7,alias:"bmw",type:"manufacturer"},
{_id:8,alias:"leather",type:"material"}
...
現在的任務是處理在每一個(!)可能的順序檢索包括產品性能低於風格的URL請求。只允許字符是破折號(定居SEO的要求,有些屬性也可以通過themselve包括破折號 - 我覺得也是一個很重要的一點 - 即類別「的SUV車」或製造商「梅賽德斯 - 奔馳」):
http:\\www.example.com\{category}-{color}-{manufacturer}-{material}
http:\\www.example.com\{color}-{manufacturer}
http:\\www.example.com\{color}-{category}-{material}-{manufacturer}
http:\\www.example.com\{category}-{color}-nonexistingproperty-{manufacturer}
http:\\www.example.com\{color}-{category}-{manufacturer}
http:\\www.example.com\{manufacturer}
http:\\www.example.com\{manufacturer}-{category}-{color}-{material}
http:\\www.example.com\{category}
http:\\www.example.com\{manufacturer}-nonexistingproperty-{category}-{color}-{material}
http:\\www.example.com\{color}-crap-{manufacturer}
...
...所以:屬性的每一個訂單應該被允許!結果必須是關於每個URL-Request使用的屬性的信息(順便說一下,重複的內容將通過重定向和預定義的模式來解決)。 「nonexistingproperties」/「廢話」是可能的,應該被忽略。
UPDATE:
理念1:一個方法,我想這個問題是由破折號分割的查詢字符串和值分析它們的值,這個問題:在兩個或三個或一些屬性的更多字的組合有太多不同的組合和變化,所以查詢的loooot殺死這個想法我覺得..
理念2:另一種方式是建立一個(在我看來)過大別名/網址表與所有不同的組合,但我認爲這是隻是一個醜陋的解決方法。大約有15000個不同的屬性,因此不同排序順序中的別名數量正在消除這個想法。
想法3:輪到你了!感謝您的精神和時間。
謝謝你的有趣方法!我完全同意這個問題沒有開箱即用的解決方案:)目前我們使用MongoDB作爲數據庫和Elasticsearch for Search ...您能否詳細介紹一下您將如何構建Lucene/ES索引或MongoDB Collection主要獲得**結果正確加權**?我們面臨的挑戰是如何爲每種類型的產品屬性獲得**最佳單一結果,對嗎?這意味着MongoDB中的聚合查詢或Elasticsearch中的分面搜索,對吧? – davidone
對於MongoDB中的權重,我認爲最好的做法是對第一遍中的文檔進行第二次傳遞,這可能是候選人。然後你需要根據順序來加權。 (同樣,我不確定MongoDB是否適合這項工作)。對於Lucene來說,只要令牌和字段的索引正確,我希望它在單詞按正確順序(精確匹配)時返回合理的加權搜索響應,而不是正確的單詞,不同的順序。我對ES沒有經驗。是的,這可能是一個方面搜索(從文檔的快速掃描)。 – WiredPrairie
感謝您的快速回復!我認爲搜索技術將是該szenario的最佳選擇,並且您在這一點上是正確的。謝謝!所以我認爲解決方案可能是一個產品屬性Lucene/Elasticsearch索引與不同的類型和別名。你知道怎麼可能查詢Lucene並獲得**每個類型**的最佳匹配項目,也就是說,您可以獲得最匹配的製造商,最匹配的類別,最匹配的顏色等等查詢網址?如果限制爲5個結果,可能只有5個最佳匹配顏色? – davidone