Solr Cloud - Запросы по уникальному полю возвращают разные результаты

Я столкнулся с проблемой, когда запрос к нашему поиску Solr будет возвращать различные значения. Однако я запрашиваю идентификатор, который установлен в поле уникального ключа.

Так что в интерфейсе Solr Admin я буду выполнять запрос, как.

Соответствующая информация об ответах ниже.

 "response": {
    "numFound": 1,
    "start": 0,
    "maxScore": 7.4537606,
    "docs": [
      {
        "title": [
          "ICARDA forced to move"
        ],
        "moduleid_s": "58",
        "id": "client1.com.58.1673",
        "enddate_dt": "2015-09-25T23:59:00Z",
        "url": "mysite.com/item.aspx?id=1673",
        "startdate_dt": "2015-09-25T00:00:00Z",

Выполнение этого запроса несколько раз в конечном итоге приведет к другому ответу.

 "response": {
    "numFound": 1,
    "start": 0,
    "maxScore": 7.453251,
    "docs": [
      {
        "title": [
          "ICARDA forced to move"
        ],
        "moduleid_s": "58",
        "id": "client1.com.58.1673",
        "enddate_dt": "2015-09-25T23:59:00Z",
        "url": "mysiteNewUrl.com/item.aspx?id=1673",
        "startdate_dt": "2015-09-25T00:00:00Z",

Обратите внимание, что URL-адрес отличается.

С Debug Query проверено. Вы можете видеть, что разные URL-адреса находятся в GET_FIELDS раздел.

Почему / как я могу получить различную информацию? Я запрашиваю идентификатор, который помечен как уникальное поле. Из моего понимания никогда не должно быть больше, чем те. Может ли это быть проблемой синхронизации? Я использую запрос интерфейса пользователя Solr с одним выбранным ядром.

Есть ли способ проверить, есть ли в индексе только один документ с таким идентификатором?

ОБНОВИТЬ:

Я запустил фасетный запрос, и этот уникальный результат 2

<lst name="facet_fields">
 <lst name="id">
<int name="client1.com.58.1673">2</int>

против того, у которого нет проблемы.

<lst name="facet_fields">
 <lst name="id">
<int name="client1.com.58.163">1</int>

Это правильно? Объясняет ли это мою проблему тем, что есть дубликаты документов, но если это так, почему не возвращаются два документа вместо просто разных данных?

1 ответ

Решение

Это установка SolrCloud или единая коллекция? Если это облако, вы, скорее всего, получили одну запись в двух разных ядрах. Возможно, из-за роутера или ошибки обновления.

Хорошая новость, вы должны быть в состоянии найти все записи, которые имеют эту проблему, выполнив facet.field = id, facet.mincount = 2. Затем вы можете удалить / повторно вставить их для согласованности.

И нет, вы не должны быть в состоянии оказаться в этом состоянии, поэтому возможны неверная конфигурация, сбой обновления или некоторые принудительные команды для игнорирования уникального требования.

Другие вопросы по тегам