Как проверить, соответствуют ли URL-адреса в огромной базе онлайн-продуктов? - PullRequest
1 голос
/ 10 марта 2012

Итак, проблема кажется простой в начале, но это не так.Использование Mongo и Node.js.

Проблема: У меня есть URL.Мне нужно сопоставить этот URL со всеми URL-адресами в моей базе данных. Помните , не существует правила, согласно которому у моего URL всегда есть "категория" или что-то подобное.И, пожалуйста, не принимайте во внимание «случаи».

Я не имею ни малейшего понятия о названии параметров или о чем-либо еще.

  1. Давайте предположим, что URL-адрес - это что-токак example.com / category / product_name.html? session_id = 2423412fd

    В базе данных у меня есть только example.com / product_name.html

  2. URL-адрес выглядит как example.com / index.php? Productid = 6 & category = 3 & utm_campaign = google & utm_source = клик

    В базе данных у меня есть только example.com/index.php?productid=6

  3. URL-адрес выглядит как example.com / product_name.html

    В базе данных у меня есть только example.com / category / subcategory / product.html

Я думаю, что сделал свою точку зрения.То, что я ищу, это решение, которое соответствует URL в любых случаях (они больше, чем эти).Это могут быть внешние сервисы, класс или что-то сложное.

Но мне нужно, чтобы оно работало и работало очень быстро, потому что делает это при каждом обновлении страницы.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 марта 2012

Для продолжения ответа Анагио, URL

example.com/index.php?productid=6&category=3&utm_campaign=google&utm_source=click

можно сохранить как объект Монго, например:

{
  url: "example.com/index.php?productid=6&category=3&utm_campaign=google&utm_source=click",
  indexes: [
    "example.com",
    "index.php",
    "productid=6",
    "category=3",
    "utm_campaign=google",
    "utm_source=click"
  ]
}

Затем вы можете разделить любой новый URL-адрес, используя тот же алгоритм, затем сделать карту / уменьшить поле индексов для оценки, а затем получить наивысший балл как лучшее «нечеткое совпадение»

0 голосов
/ 10 марта 2012

Я бы использовал эту функцию для разделения строк http://php.net/manual/en/function.parse-url.php

Затем извлеките часть имени пути, который вы хотите сопоставить, из URL-адреса и запросите URL-адрес вашей базы данных для поиска соответствий.*

...