• Nenhum resultado encontrado

Obter partes de um documento que correspondam a uma consulta de procura semântica

No documento IBM OmniFind Enterprise Edition (páginas 69-72)

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.

No documento IBM OmniFind Enterprise Edition (páginas 69-72)