SOLR (3.1+) - несколько пространственных запросов с OR в одном запросе - PullRequest
0 голосов
/ 04 октября 2011

Возможно ли выполнить несколько пространственных запросов в рамках одного запроса SOLR (3.1+)?

В настоящее время у нас есть необходимость разрешить пользователю выполнять поиск инвентаря с указанием местоположения по своему выбору с помощью формы поиска по интерфейсу. Но мы также хотим добавить еще один пространственный поиск за кулисами, чтобы он включал больше инвентаря. Результатом поиска будет поиск типа диаграммы Венна.

Изменить 10.4.2011

Пример конструкции: q = *: * & fq = {! Geofilt} & sfield = Location & (ClientId: "client1" & pt = 40.68063802521456, -74.00390625 & d = 80.4672)% 20OR% 20_query _ :( ClientId: "client2" & pt = 36.1146460 , -115,1728160 & д = 80,4672)

Приведенная выше конструкция не работает, но, надеюсь, демонстрирует то, чего я пытаюсь достичь.

Ответы [ 3 ]

3 голосов
/ 25 мая 2016

Это старый, но не похоже, что он когда-либо получил полный ответ.У меня была та же проблема, и я обнаружил, что этот синтаксис работает:

q =*:*& fq = (({
            !geofilt sfield = Location pt = 40.68063802521456,
            -74.00390625 d = 80.4672
        }
            AND ClientId : "client1")OR({
            !geofilt sfield = Location pt = 36.1146460,
            -115.1728160 d = 80.4672
        }
            AND ClientId : "client2"))
0 голосов
/ 05 октября 2011

Что, если вы переместили свой второй запрос местоположения в запрос дополнительного фильтра, как показано ниже:

q=*:*&fq={!geofilt}&sfield=Location&(ClientId:"client1"&pt=40.68063802521456,-74.00390625&d=80.4672)&fq={!geofilt}&sfield=Location&(ClientId:"client2"&pt=36.1146460,-115.1728160&d=80.4672)

Это даст результаты, которые вы ищете? Это может оказаться слишком ограниченным, но я подумал, что стоит попробовать.

Вы также можете попробовать:

q=*:*&fq={!geofilt}&sfield=Location&((ClientId:"client1"&pt=40.68063802521456,-74.00390625&d=80.4672)%20OR%20(ClientId:"client2"&pt=36.1146460,-115.1728160&d=80.4672))

0 голосов
/ 04 октября 2011

Похоже, вам нравится запускать N запросов в одном запросе, чтобы получить по одному набору результатов на запрос?!

Итак, свертывание полей (http://wiki.apache.org/solr/FieldCollapsing) - это то, что вы ищете,К сожалению, FieldCollapsing доступен только из 3.3.

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

...