<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Extend People API to query custom properties in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304307#M257437</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Steven,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for that clarification. I added my custom properties to the person.lib.ftl and am now able to expose all properties at alfresco/service/api/people.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However it turns out that is not the end of the story, and I am beginning to think that wasn't the issue at all with my broken search. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I try to use the "filter" parameter on that API request (&lt;/SPAN&gt;&lt;A href="http://localhost:8080/alfresco/service/api/people?filter=firstName:administrator" rel="nofollow noopener noreferrer"&gt;http://localhost:8080/alfresco/service/api/people?filter=firstName:administrator&lt;/A&gt;&lt;SPAN&gt;), I can retrieve people as long as the property is on the type cm&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;erson, whether or not that property is presented in the JSON response. So fields like email, skype, telephone, etc all work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However when I use one of my custom properties in the filter, I always retrieve 0 results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think I need to configure the getPeopleImplSearch method in &lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="https://github.com/Alfresco/community-edition/blob/master/projects/repository/source/java/org/alfresco/repo/jscript/People.java" rel="nofollow noopener noreferrer"&gt;https://github.com/Alfresco/community-edition/blob/master/projects/repository/source/java/org/alfresco/repo/jscript/People.java&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;to include my custom properties, but I'm not sure how to specify that. Shouldn't my aspect be available within TYPE_PERSON?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you could let me know how to adjust this code to include my:aspect in the filter, that would be great.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(from line 720)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;blockcode&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append("TYPE:\"").append(ContentModel.TYPE_PERSON).append("\" AND (");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (tokens.length == 1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // single word with no field will go against _PERSON and expand&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fts-alfresco property search i.e. location:"maidenhead"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append(term.substring(0, propIndex + 1)).append('"');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (propIndex &amp;lt; 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append('*');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append(term.substring(propIndex + 1));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (propIndex &amp;gt; 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append('"');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append("*\"");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/blockcode&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Mitch&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 14 Jul 2016 15:38:24 GMT</pubDate>
    <dc:creator>mitchb</dc:creator>
    <dc:date>2016-07-14T15:38:24Z</dc:date>
    <item>
      <title>Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304305#M257435</link>
      <description>I have extended the Person model with a custom aspect using Jeff Potts tutorial here:http://ecmarchitect.com/archives/2012/02/27/1555(and the updated code by Sujay Pillai for the 2.2 SDK here: https://github.com/sujaypillai/someco-people).I am able to view and edit my custom properties within Share</description>
      <pubDate>Wed, 13 Jul 2016 13:35:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304305#M257435</guid>
      <dc:creator>mitchb</dc:creator>
      <dc:date>2016-07-13T13:35:02Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304306#M257436</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The person.lib.ftl file can be found within the alfresco-remote-api.jar file.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To do a customisation here, you need to either provide an overridden version of this file in your repository amp SDK project.&amp;nbsp; You would put the overridden file in the src/main/amp/config/extension/templates/webscripts/org/alfresco/repository/person folder and make sure your file is called person.lib.ftl.&amp;nbsp; You may also have to override the person.get.json.ftl file as well to ensure that it imports your overridden lib file - sometimes relative path based imports can cause havoc with the override mechanisms…&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Steven&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Jul 2016 21:47:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304306#M257436</guid>
      <dc:creator>steven_okennedy</dc:creator>
      <dc:date>2016-07-13T21:47:29Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304307#M257437</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Steven,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for that clarification. I added my custom properties to the person.lib.ftl and am now able to expose all properties at alfresco/service/api/people.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However it turns out that is not the end of the story, and I am beginning to think that wasn't the issue at all with my broken search. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I try to use the "filter" parameter on that API request (&lt;/SPAN&gt;&lt;A href="http://localhost:8080/alfresco/service/api/people?filter=firstName:administrator" rel="nofollow noopener noreferrer"&gt;http://localhost:8080/alfresco/service/api/people?filter=firstName:administrator&lt;/A&gt;&lt;SPAN&gt;), I can retrieve people as long as the property is on the type cm&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;erson, whether or not that property is presented in the JSON response. So fields like email, skype, telephone, etc all work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However when I use one of my custom properties in the filter, I always retrieve 0 results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think I need to configure the getPeopleImplSearch method in &lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="https://github.com/Alfresco/community-edition/blob/master/projects/repository/source/java/org/alfresco/repo/jscript/People.java" rel="nofollow noopener noreferrer"&gt;https://github.com/Alfresco/community-edition/blob/master/projects/repository/source/java/org/alfresco/repo/jscript/People.java&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;to include my custom properties, but I'm not sure how to specify that. Shouldn't my aspect be available within TYPE_PERSON?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you could let me know how to adjust this code to include my:aspect in the filter, that would be great.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(from line 720)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;blockcode&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append("TYPE:\"").append(ContentModel.TYPE_PERSON).append("\" AND (");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (tokens.length == 1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // single word with no field will go against _PERSON and expand&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fts-alfresco property search i.e. location:"maidenhead"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append(term.substring(0, propIndex + 1)).append('"');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (propIndex &amp;lt; 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append('*');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append(term.substring(propIndex + 1));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (propIndex &amp;gt; 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append('"');&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append("*\"");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/blockcode&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Mitch&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jul 2016 15:38:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304307#M257437</guid>
      <dc:creator>mitchb</dc:creator>
      <dc:date>2016-07-14T15:38:24Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304308#M257438</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Mitch,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Having a quick look, it appears that the're no specific issue with the code present already from sending through other properties to search on, - the filters in play won't rule out anything from your custom aspect and the code above takes the search tokens and appends them to query string that will be sent.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, there are 2 things to be wary of.&amp;nbsp; In your example firstName:Administrator, firstName is given without a model prefix (cm&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://connect.hyland.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;.&amp;nbsp; This works because cm: is treated as the default prefix if none is given as far as I know.&amp;nbsp; For your custom property you'll need to make sure you include your custom model's prefix in order for Solr to pick it up properly.&amp;nbsp; You may hit problems here as the FTS language is similar to Lucene in that it uses ":" as a separator between the search property and its value, so a term like my&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;rop:value doesn't work too cleanly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The other thing to check is that your custom properties are actually set up to be indexed, so make sure that you have indexing turned on in your model definition for each property of your custom aspect&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you can, adding a loggging statement that prints out the final query that's going to be sent to Solr will help you a lot as you'll be able to get a much better idea of how the code is treating your search term, and you verify what it needs to be directly against Solr to get the results back.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Steven&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jul 2016 17:35:10 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304308#M257438</guid>
      <dc:creator>steven_okennedy</dc:creator>
      <dc:date>2016-07-14T17:35:10Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304309#M257439</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for taking a look…I thought that might have had something to do with it. This is more of a question of how to include custom properties of a non-cm namespace prefix in a simple property:value syntax for FTS. I can't find any documentation anywhere for configuring this but I'll keep digging.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In fiddling around, I think I broke my sdk instance. I was trying to figure out where the Solr home was located in the repo SDK, couldn't, checked the admin settings for the search service, switched to Solr 4, (originally it was set to Solr 1, still don't get why), and now I can't retrieve anything, even with the same queries that worked before.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any insight on how to bring my search service back? I'm kind of ready to retire this issue and wait for help from one of our developers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Mitch&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jul 2016 20:36:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304309#M257439</guid>
      <dc:creator>mitchb</dc:creator>
      <dc:date>2016-07-14T20:36:29Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304310#M257440</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What I'd suggest, if you're up for it would be a slight alteration in that method you pointed out above, to allow for handling prefixes.&amp;nbsp; So normally in urls where alfresco has to deal with prefixes, it uses underscores instead.&amp;nbsp; That's what I would do here, so on your url you'd have ?filter=my_prop:value, and you'd just change the method slightly to replace with escaped colons ( \: ) before including the term in the query.&amp;nbsp; Below is an (untested) example of what I mean in the section that handles a single query term.&amp;nbsp; It's only done when propIndex &amp;gt; 0 as this is the scenario where a &amp;lt;prop&amp;gt;:&amp;lt;value&amp;gt; has been given instead of just &amp;lt;value&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;if (tokens.length == 1)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; // single word with no field will go against _PERSON and expand&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; //Substitute out an underscore for an escaped :, if propIndex &amp;gt; 0&lt;BR /&gt;&amp;nbsp; if(propIndex &amp;gt; 0)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; term = term.replaceAll("_", "\\:");&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; // fts-alfresco property search i.e. location:"maidenhead"&lt;BR /&gt;&amp;nbsp; query.append(term.substring(0, propIndex + 1)).append('"');&lt;BR /&gt;&amp;nbsp; if (propIndex &amp;lt; 0)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append('*');&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; query.append(term.substring(propIndex + 1));&lt;BR /&gt;&amp;nbsp; if (propIndex &amp;gt; 0)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append('"');&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; query.append("*\"");&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My recommendation would be that you subclass this service with your own custom one, override the particular method above and override the spring bean that points it, pointing to your class instead.&amp;nbsp;&amp;nbsp; This is far cleaner and more maintainable than trying to replace the class or do any other such messing around.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;About your SDK Solr instance, it depends on how your running it.&amp;nbsp; If you're using something like the amp-to-war profile on a repository amp then there will be alfresco-dev-data folder that holds the content store, the H2 database files and the Solr indices.&amp;nbsp; You can remove the whole thing if you want to scratch your environment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Steven&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 14 Jul 2016 21:17:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304310#M257440</guid>
      <dc:creator>steven_okennedy</dc:creator>
      <dc:date>2016-07-14T21:17:36Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304311#M257441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I got everything back working, tried your suggestion and it works perfectly. I can now search within all properties using ?filter=my_property:value. And in the process I learned quite a lot about FTS, and overriding built-in Java services, so thank you for that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll work on adjusting the people-finder.js onSearchClick method to factor this in to the query and we should be good to go!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Mitch&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 15 Jul 2016 14:23:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304311#M257441</guid>
      <dc:creator>mitchb</dc:creator>
      <dc:date>2016-07-15T14:23:56Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304312#M257442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;FYI... Although not directly related to the back-end issues you're dealing with here, you might want to take a look at this &lt;A _jive_internal="true" href="https://community.alfresco.com/community/ecm/blog/2016/09/21/aikau-1087-people-page-libraries" rel="nofollow noopener noreferrer"&gt;blog post&lt;/A&gt; on using an Aikau version of the people-finder as it will give you more flexibility&amp;nbsp;when you get around to customizing the Share UI (obviously it depends on how much front-end customization you require).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Sep 2016 07:29:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304312#M257442</guid>
      <dc:creator>ddraper</dc:creator>
      <dc:date>2016-09-29T07:29:18Z</dc:date>
    </item>
    <item>
      <title>Re: Extend People API to query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304313#M257443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As other solution you can override&amp;nbsp;cm:contentmodel.&lt;/P&gt;&lt;P&gt;Within this overridden content model you can add your properties to cm&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;erson type.&lt;/P&gt;&lt;P&gt;In this case you can filter people by these properties without overriding of People.java.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Jun 2017 17:32:16 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/extend-people-api-to-query-custom-properties/m-p/304313#M257443</guid>
      <dc:creator>a_kholodkov</dc:creator>
      <dc:date>2017-06-15T17:32:16Z</dc:date>
    </item>
  </channel>
</rss>

