Почему запрос узла solr дает неверный номер версии документа?

На самом деле, версии стандарта C ++ до того, как C ++ 11 определили ключевое слово «export», [] , можно просто объявить шаблоны в файле заголовка и реализовать их в другом месте.

К сожалению, ни один из популярных компиляторов не реализовал это ключевое слово. Единственный, о котором я знаю, - это интерфейс, написанный Edison Design Group, который используется компилятором Comeau C ++. Все остальные настаивали на том, что вы пишете шаблоны в заголовочных файлах, нуждающихся в определении кода для надлежащего создания экземпляра (как уже указывали другие).

В результате стандартная комиссия ISO C ++ решила удалить export особенность шаблонов, начинающихся с C ++ 11.

0
задан Vaibhav Raut 3 March 2019 в 17:19
поделиться

1 ответ

Первоначальное предположение состоит в том, что модуль solr-node возвращает значение в виде двойного (а не в виде строки), и точность двойного не достаточно хороша для точного представления значения 1626999925241806848.

Мы можем подтвердить это непосредственно в консоли нашего браузера:

-> 1626999925241806848
<- 1626999925241806800

, т.е. если мы введем числовое значение 1626999925241806848, оно будет представлено числом с плавающей запятой, которое ближе всего, и это 1626999925241806800.

solr-node, вероятно, должен возвращать эти значения в виде строки, когда они превышают представимое значение для целых чисел.

Обновление : solr-node детализирует это на странице обзора :

Используйте json-bigint для правильной обработки чисел, слишком больших для числа Javascript, например в качестве значений полей * l и _version. По умолчанию библиотека json-bigint не используется, поскольку разница в производительности по сравнению с нативной библиотекой JSON слишком велика для «большого» фрагмента JSON ( https://github.com/lbdremy/solr-node-client/issues / 114 # issuecomment-54165595 ), но вы хотите включить его, если используете функцию Optimistic Concurreny, доступную в Solr 4.x, вместе с функциями RealTime Get и Atomic Updates, поскольку они используют версию поле. Чтобы включить его, выполните var client = solr.createClient({ bigint : true}) или непосредственно на клиентском экземпляре client.options.bigint = true.

0
ответ дан MatsLindh 3 March 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: