On Wed, Jul 27, 2011 at 10:04 PM, Marius Dumitru Florea <
[email protected]> wrote:

> On 07/27/2011 04:30 PM, 许凌志(Jamesxu) wrote:
> > 2011/7/27 Marius Dumitru Florea<[email protected]>
> >
> >> On 07/27/2011 12:24 PM, 许凌志(Jamesxu) wrote:
> >>> I found that if there is no input for lucene query, no results will be
> >>> returned. But In link suggestion, when user first type "[[", there is
> no
> >>> queries, so no suggestions will be got, but Marius and I excepted there
> >> is a
> >>> default suggestion results for users, like the recent modified pages,
> and
> >>> the attachments belong to the current edited pages if exists.
> >>>
> >>> Marius give me wiki page: Panels.Recently Modified, there is an page
> >> object
> >>> for getting the Recently Modeified pages. I have tried to enhance this
> >>> object so that it can return json results which can be used as a web
> >>> service, so I edit the content of the object of this page, the code is
> >>> below:
> >>> {{velocity}}
> >>> *#set($media = "$!request.media")*
> >>> #set ($recentlyModified = $xwiki.searchDocuments('where 1=1 order by
> >>> doc.date desc', 5, 0))
> >>> #if ($recentlyModified.size()>   0 || $showEmptyPanels)
> >>>     *#if($media == 'json')
> >>>        $response.setContentType("application/json")
> >>>        {'test':'mytest'}*
> >>>     #else
> >>>     #panelheader($msg.get('panels.recentlyModified.title'))
> >>>     #foreach ($docname in $recentlyModified)
> >>>       #if ($xwiki.hasAccessLevel('view', $xcontext.getUser(),
> $docname))
> >>>         #set ($rdoc =
> >> $xwiki.getDocument($docname).getTranslatedDocument())
> >>>         #if ($foreach.index>   0)
> >>>           (% class="pitemseparator" %) ~| (%%)##
> >>>         #end
> >>>         (% class="panelitem" %)[[$rdoc.plainTitle>>$rdoc]](%%)##
> >>>       #end
> >>>     #end
> >>>     #end
> >>> #panelfooter()
> >>> #end
> >>> {{/velocity}}
> >>>
> >>> as you can see, I add an parameter named "media", if the media is json,
> >> then
> >>> return the json file, otherwise the default behaviour will be executed.
> I
> >>> tested the code above, and the json result is not
> "*{'test':'mytest'}*",
> >> but
> >>> contains some other html tags.
> >>>
> >>
> >>> Can anyone tell me why?
> >>
> >> James, you have to call the page like you did with your initial fake
> >> link suggestion service and with the XWiki.SuggestLuceneService page:
> >> ?xpage=plain&outputSyntax=plain
> >>
> >
> > Yes, I have tried the url:
> >
> http://localhost:8080/xwiki/bin/get/Panels/Recently+Modified?xpage=plain&outputSyntax=plain&media=json
> > but still can't get the right result.
>
> What about
>
> http://localhost:8080/xwiki/bin/get/Panels/Recently+Modified?outputSyntax=plain&media=json
> ?
>
>
Still got the results which are not excepted:

Name
Recently Modified
Panel type
view
Category
Information
Description

Content



> >
> >>
> >> Hope this helps,
> >> Marius
> >>
> >>>
> >>> On Tue, Jul 26, 2011 at 3:57 PM, Sergiu Dumitriu<[email protected]>
> >>   wrote:
> >>>
> >>>>
> >>>>
> >>>> On 07/25/2011 05:08 AM, 许凌志(Jamesxu) wrote:
> >>>>> Hi All, how can I query the attachments of a specific page, for
> example
> >>>>> "Main.testpage"
> >>>>>
> >>>>> I found if I use the query
> >>>>> space:Main AND filename:__INPUT__* AND type:attachment
> >>>>> I can get the attachments only from the Main space.
> >>>>>
> >>>>> but how about a specific page, I have tried
> >>>>> page:Main.testpage AND filename:__INPUT__* AND type:attachment
> >>>>> wikipage:Main.testpage AND filename:__INPUT__* AND type:attachment
> >>>>> but no one can give the right results.
> >>>>
> >>>> To see which fields are indexed, you can look at the Java sources,
> >>>> starting from
> >>>>
> >>>>
> >>
> https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-lucene/src/main/java/com/xpn/xwiki/plugin/lucene/AttachmentData.java
> >>>>
> >>>> The document name is indexed both as "name", which holds just the
> name,
> >>>> without the space, and "fullname", which contains the space as well --
> >>>> Space.Document
> >>>>
> >>>>> On Wed, Jul 20, 2011 at 5:56 PM, Eduard Moraru<[email protected]>
> >>>>    wrote:
> >>>>>
> >>>>>> Hi James,
> >>>>>>
> >>>>>> That's just a query problem. The queries that are used for the
> search
> >>>>>> suggest are located in XWiki.SearchSuggestConfig. The query for
> >> Document
> >>>>>> Name/Content are not complete. They also need to specify that the
> >> result
> >>>>>> should be a document, and not anything (like attachments for
> >> instance).
> >>>> The
> >>>>>> correct query for searching for documents by document name should
> be:
> >>>>>>
> >>>>>> name:__INPUT__* AND type:wikipage
> >>>>>>
> >>>>>> For attachment name, the correct query should be:
> >>>>>>
> >>>>>> filename:__INPUT__* AND type:attachment
> >>>>>>
> >>>>>> So, for your usecase (quering documents by name or attachments by
> >> name),
> >>>>>> the
> >>>>>> query should be:
> >>>>>>
> >>>>>> (filename:__INPUT__* AND type:attachment) OR (name:__INPUT__* AND
> >>>>>> type:wikipage)
> >>>>>>
> >>>>>> I`ve tested it out by creating a page named "IconTest" and then
> >>>> searching
> >>>>>> for "icon". The results were:
> >>>>>>
> >>>>>> <results>
> >>>>>> <rs id="/xwiki/bin/download/XWiki/RequestsStatus/icon.png"
> >>>>>> info="XWiki.RequestsStatus">icon.png</rs>
> >>>>>> <rs id="/xwiki/bin/download/XWiki/ExtensionManager/icon.png"
> >>>>>> info="XWiki.ExtensionManager">icon.png</rs>
> >>>>>> <rs id="/xwiki/bin/download/Panels/PanelWizard/icon.png"
> >>>>>> info="Panels.PanelWizard">icon.png</rs>
> >>>>>> <rs id="/xwiki/bin/download/XWiki/OfficeImporterAdmin/icon.png"
> >>>>>> info="XWiki.OfficeImporterAdmin">icon.png</rs>
> >>>>>> <rs id="/xwiki/bin/download/XWiki/SearchAdmin/icon.png"
> >>>>>> info="XWiki.SearchAdmin">icon.png</rs>
> >>>>>> <rs id="/xwiki/bin/download/Blog/Categories/icon.png"
> >>>>>> info="Blog.Categories">icon.png</rs>               <-----------
> >>>> attachments
> >>>>>> <rs id="/xwiki/bin/view/Main/IconTest"
> >>>>>> info="Main.IconTest">IconTest</rs>                 <-----------
> >> documents
> >>>>>> </results>
> >>>>>>
> >>>>>> Ignore the fact that the result is in XML, you can make it json, as
> >>>>>> suggested in my previous mail.
> >>>>>>
> >>>>>> Hope that works for you.
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Eduard
> >>>>>>
> >>>>>> 2011/7/20 许凌志(Jamesxu)<[email protected]>
> >>>>>>
> >>>>>>> Thanks Eduard very much, It is really helpful, today I am trying to
> >> use
> >>>>>>> SuggestLuceneService to test the autosuggestion functions, I found
> a
> >>>>>>> problem.
> >>>>>>>
> >>>>>>> For example, I create a page named "jamesxu", and upload an
> >> attachment
> >>>>>>> named
> >>>>>>> "autosuggest1.js", then I input the query "jame" to the search box
> on
> >>>> the
> >>>>>>> top right of the page, the suggestion list shows up, but the
> results
> >> in
> >>>>>> the
> >>>>>>> "Document Name" and "Document Content" contains both the wiki page
> >>>>>>> "jamesxu"
> >>>>>>> and its attachment "autosuggest1.js", this behaviour is not
> excepted
> >> in
> >>>>>> the
> >>>>>>> autosuggestion features of the editor, because when user types
> >> "jame“,
> >>>> he
> >>>>>>> really wants to query the wiki page or attachment begin with  or
> >>>> contains
> >>>>>>> "jame",  the attachment "autosuggest1.js" does not contains "jame",
> >> it
> >>>>>>> should not be included in the suggestion results.
> >>>>>>>
> >>>>>>> On Tue, Jul 19, 2011 at 10:14 PM, Eduard Moraru<
> [email protected]
> >>>>>>>> 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/xwiki-platform-rest/xwiki-platform-rest-server/src/main/java/org/xwiki/rest/resources/wikis/WikiAttachmentsResource.java
> >>>>>>>> [2]
> >>>> http://extensions.xwiki.org/xwiki/bin/view/Extension/Lucene+Plugin
> >>>>>>>> [3]
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>
> https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-lucene/src/main/java/com/xpn/xwiki/plugin/lucene/LucenePluginApi.java
> >>>>>>>> [4]
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>
> https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-lucene/src/main/java/com/xpn/xwiki/plugin/lucene/SearchResult.java
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Tue, Jul 19, 2011 at 8:36 AM, 许凌志(Jamesxu)<
> >> [email protected]
> >>>>>>>>> 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=plain&query=name:__INPUT__*%20AND%20type:attachment&nb={number}&input={query}<http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D>
> <
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >
> >> <
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >>>
> >>>> <
> >>>>
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >>>>>
> >>>>>> <
> >>>>>>
> >>>>
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >>>>>>>
> >>>>>>> <
> >>>>>>>
> >>>>>>
> >>>>
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >>>>>>>>
> >>>>>>>> <
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >>>>>>>>>
> >>>>>>>>> "
> >>>>>>>>> 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
> >>>>>>>>> [email protected]
> >>>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
> >>>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> devs mailing list
> >>>>>>>> [email protected]
> >>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> 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
> >>>>>>> [email protected]
> >>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
> >>>>>>>
> >>>>>> _______________________________________________
> >>>>>> devs mailing list
> >>>>>> [email protected]
> >>>>>> http://lists.xwiki.org/mailman/listinfo/devs
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>> --
> >>>> Sergiu Dumitriu
> >>>> http://purl.org/net/sergiu/
> >>>> _______________________________________________
> >>>> devs mailing list
> >>>> [email protected]
> >>>> http://lists.xwiki.org/mailman/listinfo/devs
> >>>>
> >>>
> >>>
> >>>
> >> _______________________________________________
> >> devs mailing list
> >> [email protected]
> >> http://lists.xwiki.org/mailman/listinfo/devs
> >>
> >
> >
> >
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
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
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to