Lunrはほとんどの結果を見つけるのに苦労していますが、なぜJSON配列に含まれている複数単語の文字列が返されないのかわかりません。私はお祭りを返しlunr「マイアミ」と「未来」を検索するとなぜlunrはJSON配列の複数の単語列をインデックスに登録しませんか?
[{
"title": "Rolling Loud",
"date": "May 5–7",
"location": "Miami, FL, USA",
"rock-artists": [],
"hh-artists": ["Kendrick Lamar", "Future"],
"electronic-artists": [],
"other-artists": []
}]
:
は、ここに私のデータが構成されているかの感覚を得るために、サンプルJSONファイルです。しかし、 "Kendrick"や "Kendrick Lamar"を検索する場合、lunrはフェスティバルを返さない。
関連するコード:
// initialize lunr
var idx = lunr(function() {
this.field('id');
this.field('title', { boost: 3 });
this.field('date');
this.field('location');
this.field('rockArtists', { boost: 3 });
this.field('hhArtists', { boost: 3 });
this.field('electronicArtists', { boost: 3 });
this.field('otherArtists', { boost: 3 });
// add festivals to lunr
for (var key in data) {
this.add({
'id': key,
'title': data[key].title,
'date': data[key].date,
'location': data[key].location,
'rockArtists': data[key]['rock-artists'],
'hhArtists': data[key]['hh-artists'],
'electronicArtists': data[key]['electronic-artists'],
'otherArtists': data[key]['other-artists']
});
}
});
ありがとう!
'this'内の' for..in'ループとは何ですか? – guest271314
関数内で 'add()'を呼び出してはいけませんか?私はループの外側から 'idx.add'を呼び出す際に問題を抱えていたので、代わりに' this'を使って変数にアクセスしました。 – Corbin
'for..in'ログで' console.log(this) 'とは何ですか? – guest271314