Я столкнулся с проблемой, когда запрос к нашему поиску Solr возвращает разные значения. Однако я запрашиваю идентификатор, который установлен как поле уникального ключа.
Итак, в пользовательском интерфейсе администратора Solr я выполню запрос, например.
Соответствующая информация об ответе приведена ниже.
"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 отличается.
С проверенным запросом отладки. Вы можете видеть, что разные 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>
Это правильно? Объясняет ли это мою проблему в том, что есть дубликаты документов, но если это так, почему возвращаются не два документа, а просто разные данные?