에 동의어 및 맞춤법 실수 기능을 추가하는 방법을 나는내가 SOLR에서 스키마를 작성해야합니까, 루를 사용 SOLR
<bean class="org.apache.solr.client.solrj.impl.CommonsHttpSolrServer" id="solrServer">
<constructor-arg value="${solr.serverUrl}"/>
</bean>
구성 파일이
solr.serverUrl=http\://localhost\:8983/solr
을 가지고 봄 콩 다음 생성 한 로 사용되는
은 다음과 같습니다
@Autowired
transient SolrServer Address.solrServer;
@Async
public static void Address.indexAddresses(Collection<Address> addresses) {
List<SolrInputDocument> documents = new ArrayList<SolrInputDocument>();
for (Address address : addresses) {
SolrInputDocument sid = new SolrInputDocument();
sid.addField("id", "address_" + address.getId());
sid.addField("address.id_i", address.getId());
// Add summary field to allow searching documents for objects of this type
sid.addField("address_solrsummary_t", new StringBuilder().append(address.getId()));
documents.add(sid);
}
try {
SolrServer solrServer = solrServer();
solrServer.add(documents);
solrServer.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
내 질문은 :
solr에서 색인을 생성하려면이 스키마를 작성해야합니까? 아니면이 코드로 충분합니까?
이 외에도 내 응용 프로그램은 다중 계층 아키텍처이며 웹 사이트는 작은 부분입니다. 그래서 어떻게 내가 삭제할 수있는 데이터를 삭제할 수 있습니다 말 Windows 응용 프로그램 또는 안드로이드 응용 프로그램.
하나의 솔루션은 인덱스를 다시 만들 수 있지만 검색 결과를보다 효과적으로 만드는 데 사용되는 solr에서 통계를 잃지는 않습니다 (확실하지 않습니다)?
solr에 동의어 검색을 어떻게 추가하고 맞춤법 실수 추가 기능을 초기화 할 수 있습니까 (단어는 기본적으로 사전이 아닌 사람 또는 장소 이름 일 수 있습니다)?
여러 질문을 병합하는 것에 대해 사과합니다. 귀하의 도움에 미리 감사드립니다.
도움 주셔서 감사합니다. 스키마를 만들고 데이터를 인덱싱했습니다. SynonymFilterFactory를 구현하고 인덱스의 내 필드 중 하나에서 맞춤법 검사를 수행하기위한 좋은 자습서를 공유 할 수 있습니까? –
구현할 필요가 없습니다. 이미 구현되었습니다. schema.xml 파일의 필드 정의에서 구성해야합니다. 여기에서 예제를 찾을 수 있습니다. http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory –
Thanks !! 그러나 그것은 그것이 단어를 대체 할 것이라고 말한다. 대체 된 단어를 사용자가 검색하면 어떻게됩니까? 검색 쿼리는 어떻게 구현합니까? 아니면 자체적으로 수행합니까? –