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
>

I follow your suggestion, and test some queries, I list some query I have
tested bellow with its function descriptions:

Query 1:  space:Main AND filename:__INPUT__* AND type:attachment
Description: search the attachments whose filename contains "__INPUT__" and
it belong to the pages in the 'Main' space
Query 2:  name:testpage AND filename:__INPUT__* AND type:attachment
Description: search the attachments whose filename contains "__INPUT__" and
it belong to the page 'testpage'
Query 3:  space:Main AND name:testpage AND filename:__INPUT__* AND
type:attachment
Description: search the attachments whose filename contains "__INPUT__" and
it belong to the page testpage in the 'Main' space

Query 4: space:Main AND  name:__INPUT__* AND type:wikipage
Description: search the wiki pages whose name contains "__INPUT__" and it
belong to the 'Main' space


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



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