Looks good. Ship it! :-) As you bump version to 2.2 there are some bulk updates to do in jira.
-- Olivier On 25 Nov 2014 06:06, "Carlos Sanchez" <[email protected]> wrote: > PR submitted as https://github.com/apache/archiva/pull/14 > > feedback welcome, there are some new methods there > > On Thu, Nov 20, 2014 at 11:09 AM, Carlos Sanchez <[email protected]> > wrote: > > > I have added these REST methods with JCR implementations > > > > artifactsByProjectVersionMetadata/{key}/{value} > > artifactsByMetadata/{key}/{value} > > artifactsByProperty/{key}/{value} > > searchArtifacts/{text} > > searchArtifacts/{key}/{text} > > > > > > Docs here > > > https://github.com/carlossg/archiva/compare/carlossg:master...metadata-search > > > > Any suggestions on how to run these types of queries in Cassandra? > > > > > https://github.com/carlossg/archiva/compare/carlossg:master...metadata-search#diff-9de24dcf873b85547a60cd92cc2f6379R764 > > > > > > > > On Fri, Nov 7, 2014 at 11:19 PM, Carlos Sanchez <[email protected]> > > wrote: > > > >> I have added search methods for any property, including facets > >> > >> restServices/archivaServices/browseService/searchArtifacts/key/text > >> restServices/archivaServices/browseService/searchArtifacts/text > >> > >> that search in JCR > >> > >> SELECT * FROM [archiva:projectVersion] AS projectVersion > >> LEFT OUTER JOIN [archiva:artifact] AS artifact ON > ISCHILDNODE(artifact, > >> projectVersion) > >> LEFT OUTER JOIN [archiva:facet] AS facet ON ISCHILDNODE(facet, > >> projectVersion) > >> WHERE (contains([projectVersion].*, $value) OR contains([facet].*, > >> $value)) > >> AND ISDESCENDANTNODE(artifact,'/repositories/internal/content/') > >> > >> But seems that performance is bad for a "normal" sized repo. Any > >> suggestions? > >> I'll try with subselects and tuning jcr, I would imagine that it should > >> work decently and there's something wrong with archiva. > >> > >> > >> > >> On Fri, Nov 7, 2014 at 11:17 AM, Olivier Lamy <[email protected]> wrote: > >> > >>> On 7 November 2014 07:42, Carlos Sanchez <[email protected]> wrote: > >>> > I got both getArtifactsByMetadata and getArtifactsByProperty working, > >>> > passing the repository > >>> > > >>> > > >>> > https://github.com/carlossg/archiva/compare/carlossg:abstract-metadata...metadata-search > >>> > > >>> > The problem I hit with not passing the repo is that > >>> > AbstractTestService.buildArtifacts needs it. Will look later. > >>> > > >>> > About adding the other pom fields to the search index, from what I > saw > >>> I > >>> > need to add them to MinimalArtifactInfoIndexCreator (or a new one) in > >>> the > >>> > maven-indexer project, and then archiva would just use that? > >>> > >>> In such case you will have to modify the lucene model in the maven > >>> indexer project ( can certainly breaks a lot :-) ). > >>> > >>> > > >>> > Are the fields indexed already searchable somewhere in archiva with > >>> field > >>> > selection? e.g. g:myGroupId or v:1.0 ? > >>> > >>> Not associated at this level but that's already in our repository. > >>> > >>> > >>> > > >>> > Thanks > >>> > > >>> > > >>> > > >>> > > >>> > On Wed, Nov 5, 2014 at 11:42 PM, Olivier Lamy <[email protected]> > >>> wrote: > >>> > > >>> >> Hi, > >>> >> I would make repositoryId as a query param so will make it optional. > >>> >> If empty/null use the users repositories? > >>> >> > >>> >> On 6 November 2014 06:22, Carlos Sanchez <[email protected]> wrote: > >>> >> > Thanks, got an initial implementation of getArtifactsByMetadata at > >>> >> > https://github.com/carlossg/archiva/compare/metadata-search > >>> >> > > >>> >> > I added the repositoryId param, like other methods, but I'm not > >>> sure if > >>> >> > that would be limiting the feature, searching in all repos would > be > >>> more > >>> >> > interesting. > >>> >> > > >>> >> > On Wed, Nov 5, 2014 at 12:28 PM, Olivier Lamy <[email protected]> > >>> wrote: > >>> >> > > >>> >> >> basic Cassandra requests tru Hector client won't work. > >>> >> >> You will have to write some manual cql queries. > >>> >> >> > >>> >> >> On 5 November 2014 22:07, Carlos Sanchez <[email protected]> > >>> wrote: > >>> >> >> > On Wed, Nov 5, 2014 at 11:54 AM, Olivier Lamy < > [email protected]> > >>> >> wrote: > >>> >> >> > > >>> >> >> >> I would add that in the interface MetadataRepository, add a > >>> test in > >>> >> >> >> the tck and implements it for all providers :-) > >>> >> >> >> Maybe having 2 methods: > >>> >> >> >> * generic metadata: getArtifactsByMetadata( key, value) ( > maybe > >>> a Map > >>> >> >> >> for multiple value pair? will you test the full value or a > >>> matching?) > >>> >> >> >> > >>> >> >> > > >>> >> >> > is the matching syntax for cassandra an jcr different? > >>> >> >> > I mean if I pass ('foo', 'bar*') -or some sort of regex- to do > >>> >> matching > >>> >> >> is > >>> >> >> > it going to work only in jcr? > >>> >> >> > > >>> >> >> > > >>> >> >> > > >>> >> >> >> * pom contents: getArtifactsByProperty( key, value ) ( same > >>> >> questions ) > >>> >> >> >> > >>> >> >> >> To start I won't go with a Map and exact matching :-) (I > reckon > >>> pom > >>> >> >> >> content can be a pain with Cassandra impl) > >>> >> >> >> > >>> >> >> >> WDYT? > >>> >> >> >> > >>> >> >> >> Olivier > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> On 5 November 2014 21:45, Carlos Sanchez <[email protected]> > >>> wrote: > >>> >> >> >> > Thanks for the pointers, so if I add a method to > >>> >> JcrMetadataRepository > >>> >> >> >> > > >>> >> >> >> > getArtifactsByProperty(key, value) > >>> >> >> >> > > >>> >> >> >> > similar to getArtifactsByDateRange, writing the correct JCR > >>> query, > >>> >> I > >>> >> >> >> could > >>> >> >> >> > access all that metadata? > >>> >> >> >> > > >>> >> >> >> > > >>> >> >> >> > In which of the rest services would it make sense to add > such > >>> a > >>> >> >> search? > >>> >> >> >> > > >>> >> >> >> > > >>> >> >> >> > > >>> >> >> >> > On Wed, Nov 5, 2014 at 11:28 AM, Olivier Lamy < > >>> [email protected]> > >>> >> >> wrote: > >>> >> >> >> > > >>> >> >> >> >> Hi, > >>> >> >> >> >> The current SearchService search in maven indexer available > >>> datas. > >>> >> >> >> >> All the data you want to search are not available here but > >>> in the > >>> >> >> >> >> MetadataRepository ( so jcr, file or the new Cassandra). > >>> >> >> >> >> And currently there is no search methods for that! > >>> >> >> >> >> So really good news to see you as a volunteer to implement > >>> this! > >>> >> :-) > >>> >> >> >> >> Let me know if you need any pointers. > >>> >> >> >> >> > >>> >> >> >> >> Cheers > >>> >> >> >> >> Olivier > >>> >> >> >> >> > >>> >> >> >> >> > >>> >> >> >> >> On 4 November 2014 06:33, Carlos Sanchez < > [email protected]> > >>> >> wrote: > >>> >> >> >> >> > Hi, > >>> >> >> >> >> > > >>> >> >> >> >> > Two things I wasn't able to do and was going to implement > >>> >> (unless I > >>> >> >> >> >> missed > >>> >> >> >> >> > something): > >>> >> >> >> >> > > >>> >> >> >> >> > * search for generic metadata > >>> >> >> >> >> > * search for pom contents > >>> >> >> >> >> > > >>> >> >> >> >> > The way the search queries are built in SearchService > only > >>> looks > >>> >> >> for > >>> >> >> >> the > >>> >> >> >> >> > typical fields (artifactId, groupId,...), so that needs > to > >>> be > >>> >> >> changed, > >>> >> >> >> >> but > >>> >> >> >> >> > I don't know if the pom and generic metadata fields are > >>> even > >>> >> >> indexed, > >>> >> >> >> any > >>> >> >> >> >> > pointers? > >>> >> >> >> >> > > >>> >> >> >> >> > Looking to be able to search for "myMetadata:myValue" and > >>> >> something > >>> >> >> >> like > >>> >> >> >> >> > "developer:carlos*" through the rest api and ui. > >>> >> >> >> >> > > >>> >> >> >> >> > Thanks > >>> >> >> >> >> > >>> >> >> >> >> > >>> >> >> >> >> > >>> >> >> >> >> -- > >>> >> >> >> >> Olivier Lamy > >>> >> >> >> >> http://twitter.com/olamy | http://linkedin.com/in/olamy > >>> >> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> -- > >>> >> >> >> Olivier Lamy > >>> >> >> >> http://twitter.com/olamy | http://linkedin.com/in/olamy > >>> >> >> >> > >>> >> >> > >>> >> >> > >>> >> >> > >>> >> >> -- > >>> >> >> Olivier Lamy > >>> >> >> http://twitter.com/olamy | http://linkedin.com/in/olamy > >>> >> >> > >>> >> > >>> >> > >>> >> > >>> >> -- > >>> >> Olivier Lamy > >>> >> http://twitter.com/olamy | http://linkedin.com/in/olamy > >>> >> > >>> > >>> > >>> > >>> -- > >>> Olivier Lamy > >>> http://twitter.com/olamy | http://linkedin.com/in/olamy > >>> > >> > >> > > >
