Запрос оценки функции для поиска свойства с некоторой оценкой соответствия - PullRequest
0 голосов
/ 03 февраля 2019

Я создаю инструмент поиска недвижимости в качестве своего хобби-проекта для изучения упругого поиска и кибаны.

Вот детали проекта:

Each property has these 6 attributes - Id, Latitude, Longitude, Price, Number of bedrooms, Number of bathrooms

Пользователь может выполнять поиск по 4 параметрам:

Distance - radius (high weightage)
Budget (high weightage)
Number of bedrooms (low weightage)
Number of bathrooms (Low weightage)

У каждого совпадения должен быть процент, указывающий качество совпадения.Пример: если свойство точно соответствует требованию поиска покупателей для всех 4 упомянутых выше ограничений, это соответствует 100%.

Каждое требование имеет эти 9 атрибутов - Id, Широта, Долгота, Мин. Бюджет, Макс. Бюджет, Мин.Необходимые спальни, Макс. Требование к спальне, Минимальное требование к ванной комнате, Макс. Требование к ванной комнате.

Функциональные требования

 1. All matches above 40% can only be considered useful.
 2. Requirements can be without a min or a max for the budget, bedroom and a bathroom but either min or max would be surely present.
 3. For a property and requirement to be considered a valid match, distance should be within 10 miles, the budget is +/- 25%, bedroom and bathroom should be +/- 2.
 4. If the distance is within 2 miles, distance contribution for the match percentage is fully 30%
 5. If the budget is within min and max budget, budget contribution for the match percentage is full 30%. If min or max is not given, +/- 10% budget is a full 30% match.
 6. If bedroom and bathroom fall between min and max, each will contribute full 20%. If min or max is not given, match percentage varies according to the value.

То, что я пробовал До сих пор
Я оценил сценарий использования и предложил подход с запросом оценки функции, в котором я могу поместить несколько фильтров, таких как геолокация, диапазон и т. Д., Которые могут отфильтровывать результаты на основе значений параметров, выбранных пользователями.
Я также читал о методе инвертированного индекса для реляционных баз данных.

Проблема
1. Является ли эластичный поиск подходящим для этого варианта использования, в любом случае я буду записывать данные в RDBMSи использовать эластичный только для поисковых запросов, будет ли это решение масштабироваться для большого числа пользователей?

Должен ли я рассчитывать оценку совпадения в эластичном запросе, если да, то как мне написать такой запрос?этот пример мне кажется хорошим, стоит ли мне продолжать работу с запросом оценки функций?

Что мне нужно Можете ли вы помочь мне, если я 'Собираетесь ли вы в правильном направлении или нет, и любой другой подход для обработки такого варианта использования?Если использование эластичного является правильным подходом, то как написать такой запрос, не нужно полный запрос, но мне достаточно лишь небольшого руководства, чтобы завершить решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...