2016-08-26 2 views
1

Как сделать поисковый запросСмешанного слова и гео поиск

  1. находит все вокруг места (используя aroundLatLng и aroundRadius)
  2. Это смещено с помощью поиска слово
  3. Не требует результатов включить в него слова (например, они используются для значения, но если слова не соответствует записи, не исключено, априори)

?

Так, например, если я запрашиваю для «прекрасный вид» вблизи {lat: 48.8, lng: 2.3}, он должен ранжировать по значимости слова-первых, то расстоянием, и записи, которые не соответствуют ни слова, но которые близ Парижа должны подойти в любом случае в результатах.

ответ

3

Чтобы убедиться, что все слова не являются обязательными, вы можете использовать функцию optionalWords рассмотреть все слова запроса необязательных (остерегайтесь, по крайней мере, 1 всегда должны соответствовать):

var query = "great view"; 
index.search(query, { 
    optionalWords: query, 
    aroundLatLng: '48.8,2.3', 
    aroundRadius: 10000 
}).then(....); 

Затем вы можете в конечном итоге двигаться geo критерии стандартной формулы ранжирования вниз, перед custom.

+0

Да, проблема с необязательными словами заключается в том, что вам все еще нужно, чтобы они соответствовали ... Так что если запись не соответствует ни одному слову, она не включена, даже если она находится рядом .LatLng – mattecapu

+1

Да, в этом случае лучше всего пойти с 2 запросы: одна с пользовательской строкой запроса, а другая с пустой строкой запроса -> затем объединяет результаты во время отображения. – redox

Смежные вопросы