On Tue, Jul 19, 2011 at 10:14 PM, Eduard Moraru<enygma2002(a)gmail.com>wrote;wrote:
  Hi James,
 I agree with Marius that you should reuse as much as possible what already
 exists instead of creating an alternate service that does, in a great
 proportions, the same as an existing one but has one extra feature.
 So, as I was browsing trough REST's resources, I noticed an undocumented
 "/wikis/{wikiName}/attachments" [1] resource at the wiki level that is able
 to search for attachments. As you can see from the method's signature, it
 accepts parameters to filter your search by attachment name, page, space,
 author, and type. I will fix the REST API documentation and include it.
 This resource should do the trick for what you need, used in conjunction
 with the search resource that should handle documents.
 The advantage of this is that you can get json, as you did for the search
 resource.
 The disadvantage of the whole REST API, for your needs, might be that it is
 limited at wiki level and can not perform a multi-wiki search in one query
 (wihout you having to do a search for each wiki).
 On the other side, the Lucene search does not have this problem because it
 indexes all the wikis and can perform searches on all wikis in one query
 and
 it does it much faster than REST (which uses database queries). Also,
 lucene
 is used in the search suggest (the one at the top-right corner of the
 screen) and in the main XWiki search as well, so it would be much better if
 the results were consistent. Besides this, if the lucene system is improved
 over time, your results will also be improved as a result.
 So my suggestion is that you modify XWiki.SuggestLuceneService and make it
 accept a "media" parameter (or something similar) that should accept at
 least 2 values: "xml"(default) and "json". Based on this value, you
can
 wrap
 the results of the lucene search into a basic json structure that you can
 easily use in your suggest box. You can check [2][3] and [4] for references
 of how to use Lucene search in XWiki.
 Once you are done with it, you can even do a pull request so that this
 feature gets integrated into XWiki.
 The best and cleanest solution would be that the REST search resource used
 internally lucene instead of a custom database query and that there would
 be
 a single search back-end (preferably configurable in administration).
 Anyway, it's not your job to fix XWiki :) so making
 XWiki.SuggestLuceneService return json too is the best way to go right now,
 IMO.
 Thanks,
 Eduard
 -----------------
 References:
 [1]
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
 [2] 
http://extensions.xwiki.org/xwiki/bin/view/Extension/Lucene+Plugin
 [3]
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
 [4]
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
 On Tue, Jul 19, 2011 at 8:36 AM, 许凌志(Jamesxu)<lingzhixu326(a)gmail.com
  wrote: 
  Hi, these days I need to implement the rest
services for getting 
 suggestion
  results for link autosuggestion. In my design, I
think the suggestion
 results should be filtered and ranked by the following conditions.
 (for example user types "[[mytest" in page "xwiki:main.newpage")
 First [[ is triggered, when user keep typing, the page and attachment
 suggestion results should be filtered and ranked by the following rules:
 1. Prefix matched (only for page name and attachment name)
    - The pages which are in the same wiki and space of the document 
 current
  edited.( Prior A)
    - The pages which are in the same wiki but different space of the
 document current edited;(Prior B)
    - The pages which are in different wiki and different space of the
 document current edited; (Prior C);
 2. Partial matched (only for page name and attachment name)
    - The pages which are in the same wiki and space of the document 
 current
  edited.( Prior C)
    - The pages which are in the same wiki but different space of the
 document current edited;(Prior D)
    - The pages which are in different wiki and different space of the
 document current edited; (Prior E)
 3. If no page and attachment matches the above two rules,  the suggestion
 box will be disappeared.(eclipse way)
 However, sometimes user might insert the space name too, for example, 
 user
  will type "[[Main", following the rule
1 and rule 2, the pages begins 
 with
  "Main" will be first retrieved as the
suggestion results untill user 
 types
  "." after "Main", the
suggestion result will be retreved from the pages
 under the space "Main" only. Filters still obey the above three rules.
 And also when user types "attach:", the suggestion result will be 
retrieved
  the attachments only following the above three
rules.
 And if the link is under the attachment context, when "@" is typed, the
 attachments only will be retrieved following the above three rules.
 In order to do this, I investigated the rest services already existed(
 
http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI), but 
 I
  found none is perfect suitable for my needs. So I
talk with Marius, he
 suggested me to use the existed services which are closed to my needs
 first,
 and then write the perfect one later.
 However, I only found the rest service:/wikis/{wiki}/search  is the most
 closed one for the pages suggestion to my needs, there is no attachment
 search rest service for attachment suggestion, Marius adviced me to use "
 
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
 <
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
 "
 instead, but I found the search result is in xml format(not json), and 
 also
  the information of the results got from
SuggestLuceneService is limit.
 I have read the document of how to write custom rest service, but the
 information is limit, any one can guide me to run an helloworld?
 --
 Best wishes,
 许凌志(Jame Xu)
 MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
 Department of Computer Science and Technology, Xi’an Jiaotong University
 _______________________________________________
 devs mailing list
 devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/devs
  _______________________________________________
 devs mailing list
 devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/devs