Я пытался получить данные о сфинксе, используя Node.js и известняк.Я получил все от сфинкса вместо значения с плавающей точкой.В моем Сфинксе индекс Высота определяется как значение с плавающей запятой ("sql_attr_float = Height"), но Node.js возвращает некоторое целочисленное значение.
Например: если значение высоты в сфинксе равно 172,72, то я получил "1127004242"из Node.js
Пожалуйста, помогите мне в этом.
Ниже приведена функция, используемая в файле известняка, который читает данные сфинкса,
proto.toReader = function toReader() {
var offset = 0, length = this.length, buffer = this;
return {
empty: function empty() {
return offset >= length;
},
int64: function shiftInt64() {
var hi_low_pair = buffer.int64Read(offset);
offset += 8;
return hi_low_pair;
},
int32: function shiftInt32() {
var number = buffer.int32Read(offset);
offset += 4;
return number;
},
int16: function shiftInt16() {
var number = buffer.int16Read(offset);
offset += 2;
return number;
},
buffer: function shiftBuffer(length) {
var b = buffer.slice(offset, offset + length);
offset += length;
return b;
},
string: function shiftString(length) {
var string = buffer.toString('utf8', offset, offset + length);
offset += length;
return string;
},
cstring: function shiftCstring() {
var end = offset;
while (buffer[end] > 0 && end < length) { end++; }
var string = buffer.toString('utf8', offset, end);
offset = end + 1;
return string;
},
lstring: function shiftLString() {
var length = buffer.int32Read(offset);
offset += 4;
if(!isNaN(length) && !isNaN(offset)){
length = length;
var string = buffer.toString('utf8', offset, offset + length);
}else{
var string = "";
}
offset += length;
return string;
},
multicstring: function shiftMulticstring() {
var fields = [];
while (buffer[offset] > 0) {
fields.push(this.cstring());
}
offset++;
return fields;
},
hash: function shiftHash() {
var hash = {};
while (buffer[offset] > 0) {
hash[this.cstring()] = this.cstring();
}
offset++;
return hash;
}
};
};