Представьте, что есть запрос Solr с несколькими предложениями сортировки (очевидно, не по счету). Есть ли способ выяснить для каждого найденного документа, какие из этих пунктов привели к ничьей с соседями, а какие действительно использовались для сортировки? Меня особенно интересует один пункт, и я хочу найти все документы, переупорядоченные из-за него.
Например, у меня есть sort=A desc, B asc, C asc
с тремя найденными документами, и мне нужно выяснить, какие из них переупорядочены на основе B asc
:
Doc 1: perhaps we skip it
Doc 2: "B asc" meaning it has same A value with Doc 1 and B was used as tie breaker.
Doc 3: "A desc" meaning it has different A value from Doc 2 and therefore B was never used for sorting.
Очевидно, что есть несколько способов обойти это.
- Существует ли механизм, подобный объяснению результатов, который объясняет сортировку вместо оценки?
- Есть ли способ указать два параметра sort=, отсортировав один и тот же набор документов с двумя разными наборами предложений, получив их оба в ответ, тогда я смогу сравнить наборы документов?
- Есть ли прямой способ получить решающее предложение сортировки для каждой пары ответных документов?
- Может быть, есть какой-то компонент поиска, который может это сделать? Насколько сложно будет писать?
- Конечно, в противном случае я мог бы просто выполнить два запроса Solr (с пунктом сортировки и без него, который мне важен) и сравнить результаты, очевидно, я не хочу делать это с точки зрения производительности...
if (doc1.A != doc2.A then A; else if (doc1.B != doc2.B then B; else C;))
- person femtoRgon   schedule 18.01.2017