У меня есть индекс Solr
, который состоит из 10 полей. Они приведены ниже.
firstname, lastname, middlename, dob, gender, phone, email, address, city, state
Индекс состоит из примерно 10 млн записей. Я пытаюсь найти лучшее соответствие для некоторых входящих записей. Предположим, что одна такая входящая запись похожа на приведенную ниже.
John, Smith, P, 19980923, M, 9896574300, john@jj.com, James Street, Houston, TX
Итак, мой запрос Solr приведен ниже.
firstname:John OR lastname:Smith OR middlename:P OR dob:19980923 OR gender:M OR phone:9896574300 OR email:john@jj.com OR address:"James Street" OR city:Houston OR state:TX
Проблема в том, что запрос занимает время, хотя я ограничиваю результирующий набор только в топ-100. Это связано с тем, что большинство записей имеют значение состояния TX, а город - также Хьюстон, и из-за этого Solr требуется время для ранжирования и сортировки всех этих записей.
Моя цель - уменьшить количество результатов, возвращаемых Solr запрос. Итак, сначала я хотел бы использовать приведенный ниже запрос
firstname:John OR lastname:Smith OR middlename:P OR dob:19980923 OR phone:9896574300 OR email:john@jj.com OR address:"James Street"
. В приведенном выше случае он возвращает только минимальное количество записей, и в дополнение к этому я хотел бы выполнить фактический запрос, как показано ниже, чтобы он возвращал наиболее релевантный запись сверху
firstname:John OR lastname:Smith OR middlename:P OR dob:19980923 OR gender:M OR phone:9896574300 OR email:john@jj.com OR address:"James Street" OR city:Houston OR state:TX
Возможно ли добиться этого за один запрос? Использование условия ИЛИ может извлечь все записи, поэтому я хочу получить только минимальное количество записей на основе нескольких значений полей, а затем применить фактический запрос поверх него