Approach (algorithms etc) to do a search by parameters such as Yandex-market?

0 like 0 dislike
63 views
Hello!


Want to ask experienced people any way you can make a universal database search products for Yandex market.


I understand that the task is not easy, but I would like to try at least to approach the idea of creating a generic filter.


I.e., we have diverse products with different characteristics, it can be:

— numerical characteristics (ranges, etc.);

— select from multiple directories;

— the choice of the reference single;

— different units of measurement;

— other types of criteria.


Quite interesting was the introductory topic about the appropriate use for such a task MongoDB MongoDB or how to fall out of love with SQL — there is just an example of the Yandex Store was cited, but the topic wasn't until the end of revealed.


Also tell me — maybe I swung too complex idea, which not under force to realize one person for a reasonable amount of time? Then you have to simplify the problem and not chase a universal solution?


I guess I'm not the first to think about it?
by | 63 views

7 Answers

0 like 0 dislike
Also tell me — maybe I swung too complex idea, which not under force to realize one person for a reasonable amount of time?

start with low, then you will understand what is missing!
the main thing to start to finalize the process. I have also made it easy to (reasonable) minimum.
by
0 like 0 dislike
Do your task as I understand it, it's called faceted search. en.wikipedia.org/wiki/Faceted_search
When I was faced by this problem I solved it this way: there is a table "products" with all products.
There is a directory "properties".
There is a table in which are three id product — id characteristics of the reference value
All of this database is indexed Svenska. Next is done roughly as described in the article: habrahabr.ru/blogs/sphinx/64318/
\r
Ie first, for example, the user makes the search query "samsung phones". A single query to the database, we derive all the phones, and using grouping by id gain characteristics all characteristics that are possible for these products: e.g. screen size, operating system, and then choose for each characteristic possible values that match the query. Thanks to multi-queries the search works pretty quickly.
\r
Then accordingly, the user is prompted to select features from a list of possible. Well, in General, that the whole algorithm. Within a reasonable time is implemented, works pretty fast, with the addition of items to the table no problem.
by
0 like 0 dislike
I advise you to pay attention to Apache Solr. The key functionality required for such a resource — faceted navigation. Apache Solr supports a variety of filters/facet by numeric ranges (prices), dates, categories/tags (multiple values) and so on. All filters are cached in memory in the form of Basedow. In addition to excellent full-text search, spelling hints, the ability to find similar documents, goods description based on tf*idf which gives highly relevant results, distributed search, sortirovanie, replication, and more. Apache Solr is used by a very famous search sites goods such as zappos, cnet and others.
by
0 like 0 dislike
Suggest to read about spatial indexes and their implementation, for example, multidimensional R-trees. Also can be useful in solving this problem, if, for example, will do a search by range of parameters.
by
0 like 0 dislike
I'm doing this:
Table 1: Product
Table 2: Categories for product
Table 3: Names of parameters
Table 4: set of Parameters to the categories (by selecting a product category, fill with the appropriate parameters)
Table 5: Bundle — the value of the parameter with a specific product (id, id_item, id_param,var_param)
So we hang the options on the category when you add a product, choose the category and obtain a set of parameters for this category.
\r
What I like:
1) Any nested categories with their parameters.
2) you Can do a dynamic search form which allow to choose the parameters, depending on category.
3) Light small requests.
by
0 like 0 dislike
and what's wrong with the generation of query depending on the selected filters?
by
0 like 0 dislike
Task, like, fits well in a relational database, for benchmarks with a wild number of inserts watch is not exactly right. Some automation filters attributes tie is also possible. Fundamental difficulties with the course are not visible, the question is, rather, to the extent, but alone will be very difficult to implement.
by

Related questions

0 like 0 dislike
1 answer
0 like 0 dislike
1 answer
0 like 0 dislike
3 answers
0 like 0 dislike
7 answers
110,608 questions
257,186 answers
0 comments
28,881 users