Lunr은 대부분의 결과를 찾는 데 큰 도움이되지만 JSON 배열에 포함 된 여러 단어 문자열을 반환하지 않는 이유를 알 수 없습니다.왜 lunr은 JSON 배열에서 여러 단어 문자열을 색인하지 않습니까?
여기 내 데이터가 어떻게 구성되어 있는지의 감각을 얻을 수있는 샘플 JSON 파일이다 :
[{
"title": "Rolling Loud",
"date": "May 5–7",
"location": "Miami, FL, USA",
"rock-artists": [],
"hh-artists": ["Kendrick Lamar", "Future"],
"electronic-artists": [],
"other-artists": []
}]
나는 축제를 반환 lunr "마이애미"과 "미래"를 검색합니다. 그러나 "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