Tabela8.Atabelaamostra.relatórios_suspeito
IDRelatórioPolicial IDsuspeito
bbb...1 ccc...1
bbb...2 ccc...2
... ...
Tabela9.Atabelaamostra.suspeito
IDsuspeito apelido descrição
ccc...1 Barreto Compleiçãoescura
ccc...2 Silva Usaóculos
... ... ...
Referênciasrelacionadas
“Funcionalidadesincorporadas”napágina39
Asfuncionalidadesincorporadassãonomesdefuncionalidadepredefinidos comsemânticaespecial.Podemser utilizadasparaacederainformaçõesque nãoestãocontidasnaestruturafuncionalemsi, porexemplo,o tipode estruturafuncional ouotextoabrangidodeumaanotação.Podemser
utilizadasnumcaminhodefuncionalidadecomooúltimoouúnicoelemento.
Obter partes de um documento que correspondam a uma consulta de procura semântica
Podeobterapenasaspartesdeum documentoquecorrespondamexactamenteà consultaatravésdomapeamento dasestruturasfuncionaisrelevantesparaoíndice e basededadose especificandoaexpansãonaconsultadeprocurasemântica.
Paraacederatodasasinstânciasde umtipode anotaçãoespecíficonoresultado daprocura,porexemplo,paraobtertodasaspessoas,incluaum mapeamentode estilo decampoparaotipo deanotaçãoemarque-ocomo passíveldeser
devolvido (returnable)noficheirode mapeamentodaestruturadeanálisecomum paraoíndice.Por exemplo:
<indexBuildItem>
<name>com.ibm.omnifind.types.Pessoa</name>
<indexRule>
<style name="Annotation"/>
<style name="Field">
<attribute name="returnable" value="true"/>
</style>
</indexRule>
</indexBuildItem>
Nesteexemplo,asanotaçõesdotipo com.ibm.omnifind.types.Pessoasão
mapeadas paraumaexpansãocomo nomePessoanoíndice doEnterpriseSearch, onde podemser acedidosdurantea procurasemântica.Paraalémdisso,otexto abrangidodasanotações,porexemplo,osnomescompletosdaspessoasé
armazenado comoumcampopassíveldeser devolvido.Paraobterestesvaloresde anotações,chamegetFields(″Pessoa″)em cadaobjectode resultadoqueseja
devolvido apartirdaconsultadeprocura(palavra-chaveousemântica).Este métododevolveumamatrizCadeia(String)comosvaloresdasanotações,neste caso, osnomesdapessoas.
Noentanto,estaabordagemdevolvetodasasinstâncias dedeterminadotipo de anotaçãoe nãoéadequadaselimitaro processamentodosresultadosa
documentos quecorrespondamexactamenteàconsulta.Porexemplo,um documento podemencionarcincopessoas.Noentanto,naconsultadeprocura semântica ’<sentence><pessoa/>IBM</sentence>outilizadorestáinteressado apenas napessoaqueémencionadanamesma fraseemqueapareceotermo IBM.
Outilizadornão estáinteressadonoutraspessoas.
Paraacedereprocessarestruturasfuncionaisquecorrespondamexactamenteà consulta:
1. Mapeieostiposdeestruturafuncionalrelevantesparaoíndice doEnterprise Searchutilizandooestilodemapeamento daanotação.Porexemplo:
<indexBuildItem>
<name>com.ibm.omnifind.types.Pessoa</name>
<indexRule>
<style name="Annotation"/>
</indexRule>
</indexBuildItem>
2. MapeieostiposdeestruturafuncionalrelevantesparaastabelasJDBC.Como parte domapeamento,temde incluirduascolunasparaoURIdo documentoe paraoIDdaestruturafuncional.Apesardepoder mapeartodosostiposde estruturafuncionalparaamesma tabelade basesde dados,devemapearcada tipo paraumatabeladiferente.Porexemplo:
<explicitMappingRule applyToSubtypes="false">
<type>com.ibm.omnifind.types.Pessoa</type>
<table>sample.pessoa</table>
<featureMappings>
<column>annotationId</column>
</featureMapping>
</featureMappings>
</explicitMappingRule>
3. Pesquise,analiseeindexeosdocumentos.
4. ObtenhaosIDsdasinstânciasquecorrespondem àconsulta.NaAPIde
procuraedeíndice (SIAPI,SearchandIndexAPI), estasinstânciassãoreferidas comoelementosde destino.Umelementodedestinoespecificaa expansãode entradaparaserdevolvida. Édefinidadaseguinteforma:
v Nosfragmentosde XML,oelementodedestinoéidentificadoporum sinal de cardinal(#) adicionadocomo prefixo.Osinalde cardinalsóépermitido umavezepode aparecerem qualquerpontonaconsultadofragmentode XML.Porexemplo:$xmlf2::’<sentence><#pessoa/>IBM</sentence>’
v Em XPathporpredefinição,o elementode destinoé oúltimocampona expressãoXPath.
v Acedaa estasinstânciasutilizandoométodo
Result.getProperty(″ElementoDestino″).Apropriedadedevolvidaé uma concatenaçãode cadeiadetodososIDsdeocorrênciasquesãoseparadospor espaços.Cadaocorrêncianapropriedadepode sertraduzidanumvalor inteiro.
5. ASIAPInãodevolveasestruturasfuncionaisem si,apenasosrespectivosIDs deocorrências. EstesIDscorrespondem aovalor fsId()queéarmazenadona tabeladebasesdedados.Paraobterestasinstâncias erespectivasinformações associadas,énecessárioqueaaplicação:
a. Seleccionea tabeladebasesdedados correcta,emfunçãodo nomede expansãodoelementodedestino.Noexemplo,aaplicaçãocontémum mapeamentode pessoaparaatabelaamostra.Pessoa.Estasinformaçõessão deduzidasa partirdoficheirode mapeamentodaestruturade análise comumparaoíndice,queentregaonomedaexpansão,edoficheirode mapeamentodaestruturade análisecomumparaabasede dados,que entregaonome databela.
b. Paracadaobjectodo resultadonoresultadodaprocura:
1) Analisea cadeiaqueédevolvidaporResult.getProperty (″ElementoDestino″)paralocalizar osIDsdasocorrências.
2) Emitaumainstrução SELECTparaa tabelautilizandoo URIdo resultado (acessívelutilizandoResult.getDocumentId())comovalor na coluna docUrieosIDsdasocorrênciascomovalornacoluna
annotationId. Osnomesdacolunadependemdoficheiro de
mapeamento. Osnomesdacolunasãoretiradosdo exemploanterior.
Aslinhasdevolvidascontêmasinformações quesãoarmazenadasparaa estruturade funcionalidades,porexemplo,otextoabrangidoouatributos específicosdaestruturadefuncionalidades,taiscomo″apelido″ou ″localde nascimento″.
Certifique-se dequeasactualizaçõesefectuadasà basededados sãosincronizadas comasactualizaçõesdoíndicenoEnterpriseSearch.Sea basededadoscontiver informações desactualizadas(porexemplo,porqueutilizouficheirosde
carregamentodabasededados enãoactualizouabase dedados,masrenovouou reorganizou oíndice),algunsIDsdasocorrênciaspodemnãoser encontradosna base dedados.OEnterpriseSearchmantémum registoapenasdaúltima versão do documentonorespectivoíndice.Destemodo,osIDsdaocorrênciasãoválidos apenas parao últimodocumento.
Searmazenarváriasversõesdomesmodocumentona mesmatabeladebasesde dados,podemexistirváriaslinhasquecorrespondem aosmesmosIDsdas ocorrências, cadaum paraversõesdiferentesdodocumento.Nestecaso,temde definirumacolunadeversãododocumentoe preenchê-lautilizandoa lógicada aplicaçãooufuncionalidadesincorporadas comodocTimestamp().Deste modo, pode filtraroresultadoparaobterapenas aversãododocumentomaisrecente.
Conceitosrelacionados
“Termodeconsultadeprocurasemântica”na página65
Otermodeconsultadeprocurasemânticaécomunicadocomoumtermo opaco.
Tarefasrelacionadas
“Criaroficheirodemapeamento daestruturadeanálisecomumparaoíndice”
napágina44
Aoutilizaroficheirodemapeamentodaestruturadeanálisecomumparao índice,podedeterminarquaisosresultadosdaanálisena estruturadeanálise comumquepretendeindexarparaactivara procura.
“Criaroficheirodemapeamento daestruturadeanálisecomumparaabase de dados”napágina52
Paraadicionarresultadosdeanáliseaumabasede dados,temdecriaro ficheirodemapeamento daestruturadeanálisecomumparaa basededados quecontenha asinformaçõesdeconfiguraçãodaligaçãodabasede dadose umadescriçãodosresultadosdaanálisedetextopersonalizadaquedeverãoser armazenadose emquetabelasecolunas.