如何在azure搜索中加载数据而无需在所有字段上创建索引



我需要加载一些数据(json对象数组)到azure搜索,每个json对象包含100个节点,我不想在所有字段上创建索引,我已经在其中一些创建了索引,但每次我加载数据到azure搜索我得到这个错误:

上传文件…

(node:44500) UnhandledPromiseRejectionWarning: RestError: The request is invalid. 
Details: parameters : The property 'status' does not exist on type 
'search.documentFields'. Make sure to only use property names that are defined by 
the type.

我的问题是,我是否应该在所有字段(100个字段)上创建索引

您不必在所有字段上创建索引。

您要查找的是输出字段映射。这样你就可以显式地映射你想要的字段。

文档中有一个示例可能适合您的情况->文档示例

希望能有所帮助

示例如下:我希望这会对你有所帮助。

var index = { 
name: "hotels", // name of the index
fields: [
{ name: "hotelId", type: "Edm.String", key: true, searchable: false },
{ name: "baseRate", type: "Edm.Double", filterable: true, sortable: true, facetable: true },
{ name: "description", type: "Edm.String", filterable: false, sortable: false, facetable: false, searchable: true },
{ name: "description_fr", type: "Edm.String", filterable: false, sortable: false, facetable: false, searchable: true },
{ name: "hotelName", type: "Edm.String", filterable: true, sortable: true, facetable: true, searchable: true },
{ name: "category", type: "Edm.String", filterable: true, sortable: true, facetable: true, searchable: true },
{ name: "tags", type: "Collection(Edm.String)", filterable: true, sortable: false, facetable: true, searchable: true },
{ name: "parkingIncluded", type: "Edm.Boolean", filterable: true, sortable: true, facetable: true, searchable: false },
{ name: "smokingAllowed", type: "Edm.Boolean", filterable: true, sortable: true, facetable: true, searchable: false },
{ name: "lastRenovationDate", type: "Edm.DateTimeOffset", filterable: true, sortable: true, facetable: true, searchable: false },
{ name: "rating", type: "Edm.Double", filterable: true, sortable: true, facetable: true, searchable: false },
{ name: "location", type: "Edm.GeographyPoint", filterable: false, sortable: false, facetable: false, searchable: false }
]
};

var client = AzureSearch({
url : 'https://mysearch.search.windows.net',
key : 'mykey'
});

client.createIndex(index, function(err) {
if (err) throw err;
console.log('Index created');

client.addDocuments(index.name, [{
hotelId : '1',
baseRate : 199.0,
description : 'Best hotel in town',
description_fr : 'Meilleur hôtel en ville',
hotelName : 'Fancy Stay',
category : 'Luxury',
tags : ['pool', 'view', 'wifi', 'concierge'],
parkingIncluded : false,
smokingAllowed : false,
lastRenovationDate : '2022-06-27T00:00:00Z',
rating : 5.0,
location : '47.678581,-122.131577'
}], function(err) {
if (err) throw err;
console.log('Documents added');

client.search(index.name, {search : '*'}, function(err, results) {
if (err) throw err;
console.log('Found ' + results.length + ' results');

client.deleteIndex(index.name, function(err) {
if (err) throw err;
console.log('Index deleted');
});
});
});
});

最新更新