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.

>
> 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
> >>>>>>>
> >>>>>>> "
> >>>>>>> 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
>



-- 
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