Colunas numéricas não indexadas no search do SharePoint

2012-05-05 Off Por gambin

Olá Pessoal!

Não sei se vocês já perceberam, mas eu realmente gosto de trabalhar com SharePoint ;p

E uma das coisas que mais gosto nesse grande produto/ ferramenta/ plataforma/ solução – são os recursos oferecidos do Search!

– Mas como assim, você gosta do Search de um produto?!?

Sim! Isso mesmo!

O SharePoint é uma plataforma muito extensa, que pode ser utilizada para colaboração, criação e gestão de conteúdo; sejam elas através de blogs, fóruns, sites, comunidades, entre muitas outras possibilidades. Maiores formalidades aqui ;p

Podemos ver neste contexto que além das grandes possibilidades, muitas vezes trabalhamos com gigabytes e gigabytes e gigabytes e gigabytes de informação.

 

E como fica tudo isso?

Está certo que um bom planejamento, estruturação e taxonomia das informações são fatores imprescindíveis para o sucesso de um portal colaborativo, no entanto isso não garante a fácil localização do registro de atendimento em uma lista de 100.000 itens do qual você não saiba muitos detalhes adicionais além de uma palavra-chave do texto.

 

Palavra-chave? Chegamos na busca!

Você poderá encontrar maiores informações sobres os recursos de search e suas diferentes versões no SharePoint nesta bela tabela.

Ok! Agora temos nosso site, listas, itens e o serviços de Enterprise Search ativo. Muito bom!

Agora supondo que estamos configurando o search do SharePoint em uma grande livraria, que utiliza diferentes listas para armazenar informações sobre livros, do qual o campo identificador é o ISBN.

Automaticamente poderíamos pensar em agrupar todos as informações em uma unica lista de uma maneira estruturada e tudo mais. Mas acontece que isso não é de interesse da livraria uma vez que a mesma possui várias unidades, em várias localidades e as informações são gerenciadas descentralizadamente.

 

Como poderíamos encontrar as informações facilmente?

SEARCH!

Mas aí entra um porém no SharePoint. Nem todas as informações são indexadas no search, por exemplo: GUIDs, campos tipo numérico, entre outros campos que geralmente não são utilizados para pesquisa; ao contrário de campos tipo texto e texto com várias linhas.

 

#COMOFAS??

~ Le pulo do gato ~

O pulo do gato!!

Vamos por as mãos à obra e simular a indexação e pesquisa de um item de lista do tipo numero!


Configuração da lista utilizada

Estou utilizando uma lista que utiliza um Content Type previamente criado chamado Livro, no entanto sua configuração basicamente é esta:

Title (Texto), Descricao (Texto varias linhas), Autor (Texto) e ISBN (Numero).

Exemplo de item:


Utilizando a busca ‘nativa’

Por padrão esse é o funcionamento da busca:

Mas ao buscarmos pelo ISBN, nada é retornado:


Configurando Managed Properties

Este problema pode ser solucionado através da criação de uma nova Managed Property.

Para isso acesse o Central Admin > General Application Settings > Farm Search Administration > [Nome da Aplicação de Search] > Metadata Properties > New Managed Properties

Será exibida a tela de cadastro de nova propriedade.

Preencha Título, Descrição e Tipo de Informação.

Logo abaixo temos um campo chamado Mappings to crawled properties

Clique em Add Maping

Nas opções que serão exibidas, selecione o campo desejado (no meu caso ISBN) e clique em OK

Observe que no form anterior é exibido o nome do campo selecionado + o tipo do campo.

Neste caso, como estamos apenas utilizando um tipo de campo, vamos selecionar também a propriedade do metadado como Decimal, conforme figura abaixo:

Feito isso, lembre-se também de selecionar a opção Allow this property to be used in scopes em seguida clique em OK, conforme figura abaixo:

Ainda em Managed Metadata Properties, clique em Crawled Properties

Clique sobre a propriedade desejada (no meu caso ISBN)

Selecione a opção Include values for this property in the search index e clique em OK, conforme a figura abaixo:

Feitas todas as alterações, basta voltar no Content Source e executar um Full Crawl.

Terminado o Full Crawl, podemos retornar à pesquisa e fazer novamente a busca pela propriedade desejada (no meu caso ISBN).

Olha que beleza =]


Observações importantes:

Estes resultados foram obtidos com o Office Search. Ainda não consegui resultados satisfatórios com essa configuração utilizando o FAST Search (teoricamente deveria ser o mesmo raciocínio, mas na teoria a prática é igual a teoria…)

Lembre-se que ao criar uma managed metadata property, que já deve existir algum item que utilize esta propriedade e que o mesmo já foi indexado pelo menos uma vez pelo Crawl.

Mesmo que a property já tenha sido indexada por um item, pode ser que haja um delay enquanto ela seja processada e não esteja disponível para inclusão de uma nova managed metadata property. Neste caso recomendo que você se dirija a cozinha mais próxima, ferva uma xícara de água, adicione 2 colheres de sopa de Nescafé e açúcar à gosto. Volte ao procedimento apenas quando  a bebida acabar e a louça estiver limpa ;p


Considerações Finais:

Não sei explicar exatamente se este fenômeno trata-se de um bug ou uma feature “by design”.

Este comportamento chega a ser comentado superficialmente no capítulo de Search do Configuring Microsoft SharePoint 2010, no entanto não vejo qual o real problema de indexação de colunas do tipo número, que são dados totalmente simples e infinitamente menores do que qualquer outro tipo de coluna disponível no SharePoint.

Mas em todo caso, espero que este post seja útil =]

[]’s