Возможен ли Solr Query при сравнении значений функции? - PullRequest
0 голосов
/ 03 января 2012

Я работаю над Solr в течение 3-4 месяцев. Я хочу знать, можно ли сделать запрос на solr со следующими требованиями.
вернуть все документы, где,
fieldName1 = queryTerm1 &
strdist (queryTerm2, fieldName2, JW)> 5 (или некоторая константа)

Если это возможно, какой будет запрос?

Ответы [ 2 ]

1 голос
/ 03 января 2012

Полагаю, вы можете приблизиться.


Сортировать результаты по строковому расстоянию (разделить для упрощения):

localhost:8983/solr/select/?fl=id
&q=fieldName1:queryTerm1
&sort=strdist("queryTerm2",fieldName2, JW)  desc

, который упорядочит результаты, по наибольшему расстоянию между строками.

Обратите внимание, что вы не можете напрямую получить расстояние до строки.Существует оценка псевдополя, полученная с помощью:

fl=id,score

, но это ничего не значит в абсолютном смысле.


Вы также можете повысить на основе результатовна расстоянии строки, а не просто сортировать их.В этом случае он будет учитывать релевантность документа и расстояние до строки.


Как только у вас есть отсортированный список (надеюсь, он не слишком большой!), Вы можете определить на стороне клиента элементы, у которых 'длина строки <5'. </p>


Я сделал это по ссылкам ниже.

http://yonik.wordpress.com/2011/03/10/solr-relevancy-function-queries/

http://wiki.apache.org/solr/FunctionQuery#strdist

0 голосов
/ 03 января 2012

насколько я знаю, это невозможно

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